Tải bản đầy đủ (.pdf) (50 trang)

Tuyển tập đề thi tin học quốc gia

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1014.1 KB, 50 trang )

o Olympic tin học Việt Nam










Tuyển tập đề thi tin học quốc gia
(2005-2008)
o Olympic tin học Việt Nam










Đề thi vòng I quốc gia
o Olympic tin học Việt Nam
Năm 2005
Bảng A
Bài 1. Phân đoạn



Tên file chương trình: SEGPAR.PAS

Cho dãy số nguyên a
1
, a
2
, …, a
n
và số nguyên dương k. Ta gọi k-phân đoạn của dãy số đã cho là cách
chia dãy số đã cho ra thành k đoạn, mỗi đoạn là một dãy con gồm các phần tử liên tiếp của dãy. Chính
xác hơn, một k-phân đoạn được xác định bởi dãy chỉ số
nnnn
k
=<<<≤ ...1
21
.
Đoạn thứ i là dãy con
kiaaa
iii
nnn
,...,2,1,,...,,
21
11
=
++
−−
. Ở đây quy ước .0
0
=n
Yêu cầu: Hãy xác định số M nhỏ nhất để tồn tại k-phân đoạn sao cho tổng các phần tử trong mỗi đoạn

đều không vượt quá M.
Dữ liệu: Vào từ file văn bản SEGPAR.INP.
• Dòng đầu tiên chứa hai số nguyên n và k (1≤ k ≤ n ≤ 15000);
• Dòng thứ i trong số n dòng tiếp theo chứa số nguyên a
i
(|a
i
| ≤ 30000), i =1, 2, …, n.
Các số cạnh nhau trên một dòng trong file dữ liệu cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra file SEGPAR.OUT một số nguyên duy nhất là giá trị M tìm được.
Ví dụ:
SEGPAR.INP SEGPAR.OUT
5 9 4
1
1
1
3
2
2
1
3
1



o Olympic tin học Việt Nam
Bài 2: Pháo hoa
Tên chương trình: FIREWK.PAS
Nhằm chào mừng các ngày lễ lớn trong năm 2005 người ta đã chế tạo một loại đạn pháo hoa mới, khi
bắn, đạn nổ thành bông hoa 2n cánh màu ( 1 ≤ n ≤ 30). Nguyên vật liệu cho phép tạo được m màu khác

nhau, đánh số từ 1 đến m (2 ≤ m ≤ 32).
Để đảm bảo tính mỹ thuật, việc chuyển tiếp màu giữa 2 cánh hoa kề nhau phải tuân theo quy tắc
chuyển màu cầu vồng sau đây:
• Bên cạnh cánh hoa màu i phải là cánh hoa màu i-1 hoặc i+1, với 1 < i < m,
• Bên cạnh cánh hoa màu 1 chỉ có thể là cánh hoa màu 2,
• Bên cạnh cánh hoa màu m chỉ có thể là cánh hoa màu m-1.
Một bông hoa không nhất thiết phải có đầy đủ m màu. Mỗi bông hoa tương ứng với một vòng tròn 2n
số thể hiện màu của các cánh hoa. Ví dụ, hình 1 là bông hoa 24 cánh (n = 12) và hình 2 là vòng tròn số
tương ứng với nó. Mỗi bông hoa được mô tả bằng dãy 2n số nguyên liệt kê các chỉ số màu của các
cánh hoa theo chiều kim đồng hồ. Ví dụ, bông hoa ở hình 1 có thể được mô tả bằng dãy số
3 4 3 2 1 2 3 4 3 2 1 2 3 4 3 2 1 2 3 4 3 4 3 2.
Dãy có thứ tự từ điển nhỏ nhất trong các dãy có thể dùng để mô tả hoa được gọi là mã hoa. Khi đó, mã
hoa của bông hoa ở hình 1 sẽ là
1 2 3 4 3 2 1 2 3 4 3 2 1 2 3 4 3 4 3 2 3 4 3 2.
Trong các ngày lễ, Ban tổ chức yêu cầu bắn các đạn pháo hoa 2n cánh có đúng k cánh màu C (0 ≤ k ≤
2). Các mã hoa thỏa mãn yêu cầu vừa nêu cũng được sắp xếp theo thứ tự từ điển và đánh số bắt đầu từ
1. Hơn nữa, nhằm tạo ra các hoa không giống nhau, đội bắn pháo hoa cần đảm bảo hai viên đạn pháo
hoa bắn liên tiếp phải có mã khác nhau. Do vậy, người ta đã thiết kế một Hệ thống chụp ảnh và phân
tích tự động để báo cho đội bắn pháo hoa biết số thứ tự của viên đạn pháo hoa vừa nổ trên trời. Em
được giao viết chương trình giải quyết nhiệm vụ chính trong phần mềm phân tích tự động này.
Yêu cầu: Cho biết n, m, k và C. Gọi X là tập tất cả các mã hoa 2n cánh có đúng k cánh màu C.
• Hãy xác định số lượng p các phần tử của X;
• Cho một mã hoa nào đó trong tập X. Hãy xác định số thứ tự từ điển của nó trong X.
Dữ liệu: Vào từ file văn bản FIREWK.INP. Dòng đầu tiên chứa 4 số nguyên n, m, k, C; dòng tiếp theo
chứa 2n số nguyên mô tả một mã hoa.
Các số trên một dòng của file dữ liệu cách nhau ít nhất một dấu cách.
Kết quả: Đưa ra file văn bản FIREWK.OUT. Dòng đầu tiên ghi số nguyên p; dòng tiếp theo ghi số
thứ tự tìm được của mã hoa.
Ví d
ụ:

FIREWK.INP FIREWK.OUT
3 4 0 1
2 3 4 3 4 3
4
3
o Olympic tin học Việt Nam
Bài 3. Bộ sưu tập
Tên chương trình: COLLECT.PAS
Một bộ sưu tập tiền xu cổ được coi là có giá trị phải gồm không ít hơn
0
Z đồng tiền vàng,
0
S đồng tiền
bạc và
0
M đồng tiền đồng. Bộ sưu tập ban đầu của Alibaba có một số lượng nhất định các đồng tiền vàng,
bạc và đồng nhưng chưa phải là một bộ sưu tập có giá trị. Tại Trụ sở của Hiệp hội những người sưu tầm
tiền cổ có đặt một máy đổi tiền để giúp hội viên đổi được các bộ sưu tập có giá trị. Tuy nhiên, máy đổi chỉ
hỗ trợ việc đổi tiền trọn gói theo quy tắc đổi gói (
111
,, MSZ
) lấy gói (
222
,, MSZ
) đồng tiền. Các quy tắc
đổi tiền khác nhau từng đôi một, được gán số hiệu tuần tự 1,2,3, . . . và được công bố trước. Hội viên
có thể tạo gói tiền thích hợp từ bộ sưu tập của mình để thực hiện việc đổi tiền. Các đồng tiền nhận
được sau mỗi lần đổi được gộp lại với các đồng tiền mà hội viên đang có để thành một bộ sưu tập mới
và có thể được sử dụng để đổi trong những lần sau nếu cần. Số lần đổi không hạn chế, tuy nhiên, là
người thực dụng, Alibaba luôn cố gắng giảm tới mức tối đa số lần đổi tiền. Mặt khác, để ngăn chặn

việc đầu cơ, Hiệp hội quy định, trong mọi thời điểm, mỗi hội viên không được giữ quá 4 đồng tiền mỗi
loại và không được phép đổi tiếp khi đã đổi được một bộ sưu tập có giá trị.
Yêu cầu: Cho biết số lượng
MSZ ,, các
đồ
ng ti

n vàng, b

c,
đồ
ng mà Alibaba có ban
đầ
u và các quy
t

c
đổ
i ti

n. Hãy ch

ra t

t c

các b

s
ư

u t

p ti

n c

có giá tr

mà Alibaba có th


đượ
c sau m

t s

l

n
đổ
i không v
ượ
t quá k cho tr
ướ
c.
Dữ liệu
: Vào t

file v
ă

n b

n COLLECT.INP.

Dòng
đầ
u ghi s

nguyên d
ươ
ng )1000( ≤kk ; dòng th

2 ghi 6 s

nguyên không âm
)4,,,,,0(,,,,,
000000
≤≤ MSZMSZMSZMSZ ;


Các dòng ti
ế
p theo m

i dòng ghi 6 s

nguyên không âm
222111
,,,,, MSZMSZ
xác

đị
nh m

t quy
t

c
đổ
i ti

n (
4,,,,,0
212121
≤≤ MMSSZZ
).
Kết quả:

Đư
a ra file v
ă
n b

n COLLECT.OUT. N
ế
u không t

n t

i cách
đổ

i
để

đượ
c b

s
ư
u t

p có
giá tr

, file k
ế
t qu

ch

g

m m

t s

-1. Trong tr
ườ
ng h

p ng

ượ
c l

i, dòng
đầ
u ghi s

v là s

các b

ti

n
c

có giá tr

mà Alibaba có th


đổ
i
đượ
c. Dòng th

i trong v dòng ti
ế
p theo ghi 4 s


nguyên
iiii
kMSZ ,,, mô t

b

s
ư
u t

p có giá tr

th

i và s

l

n
đổ
i
i
k ít nh

t không v
ượ
t quá k c

n th


c hi

n
để


đượ
c b

s
ư
u t

p

y.
Các s

trên m

t dòng c

a file d

li

u và file k
ế
t qu



đặ
t cách nhau ít nh

t m

t d

u cách.
Ví dụ
:
COLLECT.INP COLLECT.OUT
1
3 3 3 1
2
4 0 1 3 3 3
1 0 1 1 1 1
2 0 1 1 3 3


o Olympic tin h

c Vi

t Nam

Bài 4. Khuôn thép
Tên chương trình: STEEL.PAS

Để

chu
N
n b

cho L

h

i k

ni

m 30 n
ă
m ngày Chi
ế
n d

ch H

Chí Minh toàn th

ng, gi

i phóng mi

n
Nam, th

ng nh


t
đấ
t n
ướ
c, ng
ườ
i ta c

n gia công các lo

i khuôn thép có hình d

ng là các hình
đ
a giác
l

i
M
đỉ
nh. M

i khuôn thép
đượ
c thi
ế
t k
ế
trên m


t t

m thép c
ũ
ng có hình d

ng là m

t hình
đ
a giác l

i
N

đỉ
nh, không có c

nh nào c

a khuôn thép n

m g

n trên m

t c

nh c


a t

m thép.
Để
ti

n cho vi

c gia
công, khuôn thép
đượ
c v

sao cho hai
đườ
ng th

ng ch

a hai c

nh không k

nhau c

a nó không c

t
nhau


bên trong t

m thép.
Công vi

c chính c

n làm trong quá trình gia công là s

d

ng máy c

t
để
c

t
đượ
c khuôn thép t

t

m
thép ra. Rõ ràng là c

n ph

i th


c hi

n
M
nhát c

t. M

i nhát c

t
đượ
c th

c hi

n b

ng cách ch

n m

t
c

nh nào
đ
ó c


a khuôn thép và c

t theo
đườ
ng th

ng ch

a c

nh

y chia t

m thép thành hai ph

n, m

t
ph

n ch

a khuôn thép c

n gia công. Chi phí c

t khuôn thép là t

ng chi


u dài c

a các
đườ
ng c

t.


Trên hình 1 và 2, t

m thép là t

giác
đượ
c tô nh

t, khuôn thép là hình vuông
đượ
c tô b

ng các g

ch
đậ
m. Các nét g

ch
đứ

t là các
đườ
ng c

t v

i t

ng chi phí b

ng 6.5
đơ
n v

.
Yêu cầu:
Cho bi
ế
t hình d

ng t

m thép và khuôn thép c

n gia công. Hãy tìm ph
ươ
ng án c

t khuôn thép
có chi phí nh


nh

t.
Dữ liệu:
Vào t

file v
ă
n b

n STEEL.INP: Dòng
đầ
u ghi s

(3 2000)
N N
≤ ≤ là s


đỉ
nh c

a t

m
thép;
N
dòng ti
ế

p theo, m

i dòng ghi 2 s

th

c
x

y
4 4
( 10 , 10 )
x y
− < < , là to


độ

N

đỉ
nh c

a t

m
thép
đượ
c li


t kê theo chi

u kim
đồ
ng h

b

t
đầ
u t

m

t
đỉ
nh nào
đ
ó; dòng ti
ế
p theo ghi s


(3 2000)
M M
≤ ≤ là s


đỉ
nh c


a khuôn thép; cu

i cùng là
M
dòng, m

i dòng ghi 2 s

th

c
x

y
4 4
( 10 , 10 )
x y
− < < là to


độ

M

đỉ
nh c

a khuôn thép
đượ

c li

t kê theo chi

u kim
đồ
ng h

b

t
đầ
u t


m

t
đỉ
nh nào
đ
ó. Các s

trên m

t dòng cách nhau ít nh

t m

t d


u cách.
Kết quả:

Đư
a ra file v
ă
n b

n STEEL.OUT chi phí nh

nh

t tìm
đượ
c v

i
độ
chính xác t

i 4 ch

s

sau
d

u ch


m th

p phân.
Ví dụ:
STEEL.INP STEEL.OUT
4 6.5000
2 1
2 5
5 3.5
5 2
4
3 3
3 4
4 4
4 3


o Olympic tin h

c Vi

t Nam
Bảng B
Bài 1. Đóng gói sản phm
Tên file chương trình: ZXY.PAS


đầ
u ra c


a m

t dây chuy

n s

n xu

t trong nhà máy ZXY có m

t máy x
ế
p t


độ
ng. Sau khi k
ế
t thúc
vi

c gia công trên dây chuy

n, các s

n ph
N
m s



đượ
c x
ế
p vào các h

p có cùng dung l
ượ
ng
M
. S

n
ph
N
m r

i kh

i dây chuy

n
đượ
c x
ế
p vào h

p
đ
ang m


(khi b

t
đầ
u ca làm vi

c có m

t h

p r

ng
đượ
c
m

s

n) n
ế
u nh
ư
dung l
ượ
ng c

a h

p còn

đủ

để
ch

a s

n ph
N
m. Trong tr
ườ
ng h

p ng
ượ
c l

i, máy s


t


độ
ng
đ
óng n

p h


p hi

n t

i, cho xu

t x
ưở
ng r

i m

m

t h

p r

ng m

i
để
x
ế
p s

n ph
N
m vào. Trong
m


t ca làm vi

c có
n
s

n ph
N
m
đ
ánh s

t

1
đế
n
n
theo
đ
úng th

t

mà chúng r

i kh

i dây chuy


n. S

n
ph
N
m th


i
có tr

ng l
ượ
ng là
a
i
, i
= 1, 2, …,
n
. Ban Giám
đố
c nhà máy qui
đị
nh r

ng s

n ph
N

m xu

t
x
ưở
ng c

a m

i ca làm vi

c ph

i
đượ
c x
ế
p vào trong không quá
k
h

p.
Yêu cầu:
Hãy giúp ng
ườ
i qu

n
đố
c c


a ca làm vi

c xác
đị
nh giá tr


M
nh

nh

t sao cho s

h

p mà
máy t


độ
ng c

n s

d

ng
để

x
ế
p dãy
n
s

n ph
N
m xu

t x
ưở
ng c

a ca không v
ượ
t quá s


k
cho tr
ướ
c.
Dữ liệu:
Vào t

file v
ă
n b


n ZXY.INP:


Dòng
đầ
u tiên ch

a hai s

nguyên
n

k
, (1


k



n


15000);


Dòng th


i

trong
n
dòng ti
ế
p theo ch

a s

nguyên d
ươ
ng
a
i
(
a
i


30000),
i
=1, 2, …,
n
.
Các s

trên m

t dòng cách nhau ít nh

t m


t d

u cách.
Kết quả:
Ghi ra file ZXY.OUT m

t s

nguyên duy nh

t là dung l
ượ
ng c

a h

p.
Ví dụ:
ZXY.INP ZXY.OUT
9 4
1
1
1
3
2
2
1
3
1

5

o Olympic tin h

c Vi

t Nam
Bài 2. Chữ số
Tên chương trình: DIGIT.PAS
Cho xâu M không quá 127 ký t

l

y t

t

p
F
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}và không
b

t
đầ
u b

ng ký t

0. G


i S là xâu v

i giá tr

ban
đầ
u là xâu M.
Ng
ườ
i ta bi
ế
n
đổ
i M theo quy t

c sau:
đế
m s

l

n xu

t hi

n các ký t

0, 1, 2, . . . , F, g

i K

i
là s

l

n
xu

t hi

n ký t


i
(v

i
i
l

n l
ượ
t là 0, 1, 2, . . . F). V

i các K
i
≠ 0 ng
ườ
i ta vi
ế

t liên ti
ế
p xâu bi

u di

n s


K
i
trong c
ơ
s

16 và ký t

i
. Xâu k
ế
t qu

thu
đượ
c là giá tr

m

i c


a M. Sau m

i l

n bi
ế
n
đổ
i ng
ườ
i ta
l

i vi
ế
t ti
ế
p M vào sau S.
Ví d

, v

i M = '150A', S nh

n giá tr

ban
đầ
u là '150A'.
Sau l


n bi
ế
n
đổ
i th

nh

t ta có M là '1011151A' và S ='150A1011151A'.
Sau l

n bi
ế
n
đổ
i th

2 ta có M là '1051151A' và S ='150A1011151A1051151A'.
Sau l

n bi
ế
n
đổ
i th

3 ta có M là '1041251A' và S = ‘150A1011151A1051151A1041251A’.
Yêu cầu:
Cho xâu M, s


l

n bi
ế
n
đổ
i L ( 0

L

10
7
) và X là m

t ký t

t

t

p
F
. Hãy
đế
m s

l

n xu


t
hi

n X trong S thu
đượ
c sau L l

n bi
ế
n
đổ
i M.
Dữ liệu
: Vào t

file v
ă
n b

n DIGIT.INP :


Dòng th

nh

t ch

a xâu M,



Dòng th

2 ch

a s

nguyên L


Dòng th

3 ch

a ký t

X.
Kết quả
:
Đư
a ra file v
ă
n b

n DIGIT.OUT m

t s

nguyên - s


l

n xu

t hi

n X.
Ví dụ
:
DIGIT.INP DIGIT.OUT
1 150A
3
2


o Olympic tin h

c Vi

t Nam
Bài 3. Đổi đất
Tên file chương trình: LAND.PAS
Hai b

l

c Anpha và Bêta s

ng r


t hoà thu

n v

i nhau. M

t ph

n ranh gi

i c

a hai b

l

c là m

t
đườ
ng
g

p khúc không t

c

t.
Đườ

ng g

p khúc nh

n
đượ
c b

ng cách l

n l
ượ
t n

i
N

đ
i

m
đ
ôi m

t khác nhau
1 2
, ,...,
N
A A A
.

Đ
i

m
i
A

đượ
c xác
đị
nh b

i hoành
độ

i
x
và tung
độ

i
y

(
i
x
là các s

nguyên tho


mãn
đ
i

u ki

n:
1i i
x x
+
≤ ). Ph

n
đấ
t c

a b

l

c Anpha n

m

phía trên
đườ
ng g

p khúc.
Nhân d


p n
ă
m m

i, tù tr
ưở
ng hai b

l

c quy
ế
t
đị
nh thay
đổ
i
đườ
ng ranh gi

i c
ũ
b

ng cách xây d

ng m

t

đườ
ng cao t

c là
đườ
ng n

i th

ng t

1
A
t

i
N
A
và l

y
đườ
ng cao t

c này
làm
ranh gi

i m


i. D
ĩ
nhiên, s

thay
đổ
i này s

chuy

n m

t s


ph

n
đấ
t c

a b

l

c Anpha cho b

l

c Bêta và ng

ượ
c l

i. Hai tù
tr
ưở
ng tho

thu

n ph

n di

n tích chênh l

ch do vi

c thay
đổ
i
đườ
ng ranh gi

i s


đượ
c
đ

i

u ch

nh trong t
ươ
ng lai b

ng m

t
cách khác.
Yêu cầu
: Hãy tính di

n tích ph

n
đấ
t
SA
c

a b

l

c
Anpha
tr


thành
đấ
t c

a b

l

c Bêta và di

n tích ph

n
đấ
t
SB
c

a b

l

c Bêta tr

thành
đấ
t c

a b


l

c Anpha sau
khi
thay
đổ
i
đườ
ng ranh gi

i gi

a hai b

l

c.
Dữ liệu
: Vào t

file v
ă
n b

n LAND.INP trong
đ
ó :

Dòng

đầ
u ch

a s

( 10000)
N N
≤ ;

Dòng th


i
trong
N
dòng ti
ế
p theo ch

a hai s

nguyên
i
x

i
y

đặ
t cách nhau ít nh


t 1 d

u
cách ( 32000 , 32000)
i i
x y
− ≤ ≤ .
Kết quả
:
Đư
a ra file v
ă
n b

n LAND.OUT trong
đ
ó dòng th

nh

t ch

a
SA
, dòng th

hai ch

a

SB
.
K
ế
t qu


đượ
c l

y chính xác v

i 4 ch

s

sau d

u ch

m th

p phân.
Ví dụ :
LAND.INP LAND.OUT
6
0 0
2 4
5 1
7 11

10 8
11 11

8.0000
9.0000

o Olympic tin h

c Vi

t Nam
Bài 4. Bộ sưu tập
Tên chương trình: COLLECT.PAS
M

t b

s
ư
u t

p ti

n xu c


đượ
c coi là có giá tr

ph


i g

m không ít h
ơ
n
0
Z

đồ
ng ti

n vàng,
0
S

đồ
ng ti

n
b

c và
0
M

đồ
ng ti

n

đồ
ng. B

s
ư
u t

p ban
đầ
u c

a Alibaba có m

t s

l
ượ
ng nh

t
đị
nh các
đồ
ng ti

n vàng,
b

c và
đồ

ng nh
ư
ng ch
ư
a ph

i là m

t b

s
ư
u t

p có giá tr

. T

i Tr

s

c

a Hi

p h

i nh


ng ng
ườ
i s
ư
u t

m
ti

n c


đặ
t m

t máy
đổ
i ti

n
để
giúp h

i viên
đổ
i
đượ
c các b

s

ư
u t

p có giá tr

. Tuy nhiên, máy
đổ
i ch


h

tr

vi

c
đổ
i ti

n tr

n gói theo quy t

c
đổ
i gói (
111
,, MSZ
) l


y gói (
222
,, MSZ
)
đồ
ng ti

n. Các quy t

c
đổ
i ti

n khác nhau t

ng
đ
ôi m

t,
đượ
c gán s

hi

u tu

n t


1,2,3, . . . và
đượ
c công b

tr
ướ
c. H

i viên
có th

t

o gói ti

n thích h

p t

b

s
ư
u t

p c

a mình
để
th


c hi

n vi

c
đổ
i ti

n. S

l

n
đổ
i ti

n là không
h

n ch
ế
, tuy nhiên,
để
ng
ă
n ch

n vi


c
đầ
u c
ơ
, Hi

p h

i quy
đị
nh m

i h

i viên không
đượ
c gi

quá 4
đồ
ng ti

n m

i lo

i. Các
đồ
ng ti


n nh

n
đượ
c sau m

i l

n
đổ
i
đượ
c g

p l

i v

i các
đồ
ng ti

n mà h

i
viên
đ
ang có
để
thành

m

t b

s
ư
u t

p m

i
và có th


đượ
c s

d

ng
để

đổ
i trong nh

ng l

n sau n
ế
u c


n.
Yêu cầu
: Cho bi
ế
t s

l
ượ
ng
MSZ
,, các
đồ
ng ti

n vàng, b

c,
đồ
ng mà Alibaba có ban
đầ
u và các quy
t

c
đổ
i ti

n. Hãy ch


ra
m

t ph
ươ
ng án
đổ
i ti

n nào
đ
ó

để
Alibaba có
đượ
c b

s
ư
u t

p có giá tr

. D


li

u vào

đả
m b

o luôn có ph
ươ
ng án.
Dữ liệu
: Vào t

file v
ă
n b

n COLLECT.INP:


Dòng
đầ
u ghi 6 s

nguyên không âm )4,,,,,0(,,,,,
000000
≤≤
MSZMSZMSZMSZ
;


Các dòng ti
ế
p theo m


i dòng ghi 6 s

nguyên không âm
222111
MSZMSZ
xác
đị
nh m

t quy t

c
đổ
i
ti

n.
Kết quả:

Đư
a ra file v
ă
n b

n COLLECT.OUT m

t dòng ghi dãy s

hi


u các quy t

c theo th

t


đ
ã s


d

ng trong ph
ươ
ng án
đổ
i ti

n.
Các s

trên m

t dòng c

a file d

li


u và file k
ế
t qu


đặ
t cách nhau ít nh

t m

t d

u cách.
Ví dụ
:
COLLECT.INP COLLECT.OUT
3 4 4 0 1 3 3 3
1 0 1 0 2 2
0 1 1 0 0 3
2 0 1 1 2 3
1 0 0 1 1 0


o Olympic tin h

c Vi

t Nam
Năm 2006

Bảng A
Bài 1. Dãy con dài nhất
Cho dãy s

nguyên
a
1
,
a
2
, ...,
a
n
.
Dãy s


a
i
, a
i+1
, ...,
a
j

v

i 1≤
i


j

n

đượ
c g

i là dãy con c

a dãy s


đ
ã cho và khi
đ
ó,
j
-
i
+1
đượ
c g

i là
độ dài,
còn
j
k
k i
a

=

đượ
c g

i là
trọng lượng
c

a dãy con này.
Yêu cầu:
Cho s

nguyên
p
, trong s

các dãy con c

a dãy s


đ
ã cho có tr

ng l
ượ
ng không nh

h

ơ
n
p

hãy tìm dãy con có
độ
dài l

n nh

t.
Dữ liệu:
Vào t

file v
ă
n b

n MAXSEQ.INP:


Dòng
đầ
u tiên ghi hai s

nguyên
n

p
cách nhau b


i d

u cách;


Dòng th


i
trong s


n
dòng ti
ế
p theo ch

a s

nguyên
a
i
là s

h

ng th



i
c

a dãy s


đ
ã cho,
i
=
1, 2, ...,
n
.
Kết quả:
Ghi ra file v
ă
n b

n MAXSEQ.OUT s

nguyên
k

độ
dài c

a dãy con tìm
đượ
c (qui
ướ

c:
n
ế
u không có dãy con nào tho

mãn
đ
i

u ki

n
đặ
t ra thì
k
= -1) .
Ví dụ:

MAXSEQ.INP MAXSEQ.OUT MAXSEQ.INP MAXSEQ.OUT
5 6
-2
3
2
-2
3
4

4 9
2
3

2
-2
-1
Hạn chế:
Trong t

t c

các test:

1 ≤
n
≤ 20000; |
a
i
| ≤ 20000; |
p
| ≤ 10
9
.

Có 50% s

l
ượ
ng test v

i
n


1000.
o Olympic tin h

c Vi

t Nam

Bài 2. Đường đi trên lưới
Cho m

t l
ướ
i ô vuông g

m
m
dòng và
n
c

t. Các dòng
đượ
c
đ
ánh s

t

1
đế

n m t

trên xu

ng d
ướ
i,
các c

t
đượ
c
đ
ánh s

t

1
đế
n
n
t

trái qua ph

i. Ô n

m

v


trí dòng
i
và c

t
j
c

a l
ướ
i
đượ
c g

i là ô
(
i,j
) và khi
đ
ó,
i

đượ
c g

i là to


độ

dòng còn
j

đượ
c g

i là to


độ
c

t c

a ô này. Trên ô (
i,j
) c

a l
ướ
i ghi
s

nguyên d
ươ
ng
a
ij
,
i

= 1, 2, ...,
m
;
j
= 1, 2, ...,
n
. Trên l
ướ
i
đ
ã cho, t

ô (
i,j
) ta có th

di chuy

n
đế
n ô
(
p,q
) n
ế
u các
đ
i

u ki


n sau
đ
ây
đượ
c tho

mãn:


j
<
n
;
i

p
;
j

q

i
+
j
<
p + q
;



a
ij

a
pq


ướ
c s

chung l

n h
ơ
n 1.
Ta g

i m

t cách di chuy

n t

mép trái sang mép ph

i c

a l
ướ
i là cách di chuy


n b

t
đầ
u t

m

t ô có
to


độ
c

t b

ng 1 qua các ô c

a l
ướ
i tuân theo qui t

c di chuy

n
đ
ã nêu và k
ế

t thúc

m

t ô có to


độ

c

t b

ng
n
.
Yêu cầu:
Tính s

cách di chuy

n t

mép trái sang mép ph

i c

a l
ướ
i.

Dữ liệu:
Vào t

file v
ă
n b

n NETPATH.INP:


Dòng
đầ
u tiên ghi 2 s

nguyên d
ươ
ng
m, n.



Dòng th


i
trong s


m
dòng ti

ế
p theo ghi
n
s

nguyên d
ươ
ng
a
i1
,
a
i2
, ...,
a
in
là các s

trên dòng
th


i
c

a l
ướ
i,
i
= 1, 2, ...,

m
.
Hai s

liên ti
ế
p trên cùng m

t dòng
đượ
c ghi cách b

i ít nh

t m

t d

u cách.
Kết quả:
Ghi ra file v
ă
n b

n NETPATH.OUT s

nguyên
k
là s


l
ượ
ng cách di chuy

n tìm
đượ
c, bi
ế
t
r

ng d

li

u
đả
m b

o
k
< 10
9
.
Ví dụ:
NETPATH.INP NETPATH.OUT NETPATH.INP NETPATH.OUT
2 2
2 4
6 8
4 2 2

2 5
6 7
0

Hạn chế:
Trong t

t c

các test:

1
<
m, n
≤ 100;
a
ij

≤ 30000,
i
=1,2,...,
m
;
j
=1,2,...,
n
.

Có 50% s


l
ượ
ng
test v

i
m, n
≤ 50.
o Olympic tin h

c Vi

t Nam

Bài 3. Mạng máy tính
M

t h

th

ng
n
máy tính (các máy tính
đượ
c
đ
ánh s

t


1
đế
n
n
)
đượ
c n

i l

i thành m

t m

ng b

i
m

kênh n

i, m

i kênh n

i hai máy nào
đ
ó và cho phép truy


n tin m

t chi

u t

máy này
đế
n máy kia. Gi


s


s

t
là hai máy tính trong m

ng. Ta g

i
đườ
ng truy

n tin t

máy
s


đế
n máy
t
là m

t dãy các máy
tính và các kênh n

i chúng có d

ng:

s
=
u
1
,
e
1
,
u
2
, ...,
u
i
,
e
i
,
u

i+1
, ...,
u
k-1
,
e
k-1
,
u
k
= t,

trong
đ
ó
u
1
,
u
2
, ...,
u
k
là các máy tính trong m

ng,
e
i
– kênh truy


n tin t

máy
u
i

đế
n máy
u
i+1
(
i
= 1, 2,
...,
k
-1).
M

ng máy tính
đượ
c g

i là
thông suốt
n
ế
u nh
ư

đố

i v

i hai máy
u
,
v
b

t k

ta luôn có
đườ
ng
truy

n tin t


u

đế
n
v

đườ
ng truy

n tin t



v

đế
n
u
. M

ng máy tính
đượ
c g

i là
hầu như thông suốt

n
ế
u nh
ư

đố
i v

i hai máy
u
,
v
b

t k


, ho

c là có
đườ
ng truy

n tin t


u

đế
n
v
ho

c là có
đườ
ng truy

n tin
t


v

đế
n
u
.

Bi
ế
t r

ng m

ng máy tính
đ
ã cho là h

u nh
ư
thông su

t nh
ư
ng không là thông su

t.
Yêu cầu:
Hãy xác
đị
nh xem có th

b

sung
đ
úng m


t kênh truy

n tin
để
bi
ế
n m

ng
đ
ã cho tr

thành
thông su

t
đượ
c hay không?
Dữ liệu:
Vào t

file v
ă
n b

n ONEARC.INP:


Dòng
đầ

u tiên ch

a 2 s

nguyên d
ươ
ng
n

m
.


Dòng th


i
trong s


m
dòng ti
ế
p theo mô t

kênh n

i th



i
bao g

m hai s

nguyên d
ươ
ng
u
i
, v
i

cho bi
ế
t kênh n

i th


i
cho phép truy

n tin t

máy
u
i

đế

n máy
v
i
,
i
=1,2,...,
m
.
Các s

trên cùng m

t dòng
đượ
c ghi cách nhau b

i d

u cách.
Kết quả:
Ghi ra file v
ă
n b

n ONEARC.OUT:


Dòng
đầ
u tiên ghi ‘YES’ n

ế
u câu tr

l

i là kh

ng
đị
nh, ghi ‘NO’ n
ế
u câu tr

l

i là ph


đị
nh.


N
ế
u câu tr

l

i là kh


ng
đị
nh thì dòng th

hai ghi hai s

nguyên d
ươ
ng
u, v
cách nhau b

i d

u
cách cho bi
ế
t c

n b

sung kênh truy

n tin t

máy
u

đế
n máy

v

để
bi
ế
n m

ng thành thông su

t.
Ví dụ:
ONEARC.INP ONEARC.OUT
3 2
1 2
2 3
YES
3 1
Hạn chế:
Trong t

t c

các test:
n
≤ 2000,
m
≤ 30000.Có 50% s

l
ượ

ng test v

i
n
≤ 200.
o Olympic tin h

c Vi

t Nam

Bài 4. Xoá cặp ô
Cho m

t b

ng hình ch

nh

t kích th
ướ
c
m×n
ô vuông kích th
ướ
c
đơ
n v


. Các dòng
đượ
c
đ
ánh s

t

1
đế
n
m
, t

trên xu

ng d
ướ
i. Các c

t
đượ
c
đ
ánh s

t

1
đế

n
n
, t

trái qua ph

i. Ô n

m

v

trí dòng
i

c

t
j
c

a b

ng
đượ
c g

i là ô (
i,j
). M


i ô c

a b

ng ho

c
đượ
c
để
tr

ng ho

c ch

a m

t ký t

l

y t

t

p Σ g

m các ch



s

t

0
đế
n 9 và các ch

cái la tinh in hoa t

A
đế
n Z. M

i ký t

c

a
t

p Σ xu

t hi

n

không quá 4 ô trong b


ng. Hai ô ch

a
cùng
m

t ký t


đượ
c g

i là gi

ng nhau. Hai ô gi

ng nhau có th


xoá
đượ
c n
ế
u chúng có c

nh chung ho

c tâm (giao
đ

i

m
c

a hai
đườ
ng chéo) c

a 2 ô này có th

n

i v

i nhau b

ng
m

t
đườ
ng g

p khúc g

m không quá 3
đ
o


n th

ng
độ
dài
nguyên, m

i
đ
o

n song song v

i c

nh c

a b

ng, và ngo

i
tr

hai ô c

n xoá,
đườ
ng g


p khúc này ch

qua các ô tr

ng hay n

m ngoài b

ng. Các ô b

xoá tr

thành
ô tr

ng. M

i l

n xoá m

t c

p ô c

a b

ng
đượ
c g


i là m

t b
ướ
c. Hình bên nêu ví d

v

i tr
ườ
ng h

p
m
=
4 và
n
= 6. B
ướ
c
đầ
u tiên có th

xoá hai ô ch

a ký t


A

’ ho

c 2 ô ch

a ký t


B
’ hay 2 ô ch

a ký t



D
’. Hai ô ch

a ký t


C
’ ch

có th

xoá s

m nh

t


b
ướ
c th

2, sau khi
đ
ã xoá các ô ch

a ‘
A
’. Nh
ư

v

y,
để
xoá tr

ng 2 ô (2, 1) và (1,2) c

n th

c hi

n t

i thi


u 3 b
ướ
c xoá.
Yêu cầu:
Cho hai s


m
,
n

m
xâu
độ
dài
n
mô t

các dòng c

a b

ng và hai ô khác tr

ng (
r
1
,
c
1

), (
r
2
,
c
2
). Hãy xác
đị
nh s

b
ướ
c ít nh

t c

n th

c hi

n
để
bi
ế
n
đổ
i các ô (
r
1
,

c
1
) và (
r
2
,
c
2
) tr

thành ô tr

ng.
Dữ liệu
: Vào t

file v
ă
n b

n DEL.INP:


Dòng
đầ
u tiên ch

a 6 s

nguyên

m, n, r
1
,
c
1
,
r
2
,
c
2
, hai s

liên ti
ế
p
đượ
c ghi cách nhau b

i d

u
cách.


Dòng th


i
+1 ch


a xâu
n
ký t

mô t

dòng th


i
c

a b

ng (
i
= 1, 2, ...,
m
). Các ô tr

ng
đượ
c
th

hi

n b


ng d

u ch

m (‘
.
’).
Kết quả
:
Đư
a ra file v
ă
n b

n DEL.OUT s

nguyên
k
là s

b
ướ
c ít nh

t tìm
đượ
c (qui
ướ
c: n
ế

u không
t

n t

i cách bi
ế
n
đổ
i tho

mãn yêu c

u
đặ
t ra thì
k
=-1).
Ví dụ
:
DEL.INP DEL.OUT DEL.INP DEL.OUT
4 5 2 1 1 2
ABD...
C.12..
..21C.
A.B.D.
3


4 6 4 2 4 6

ABCDUV
BADCVU
ABCDUV
BADCVU
3

Hạn chế: Trong tất cả các test:
0 <
m


10, 0 <
n


20. Có
60% số lượng test có m ≤ 8, n ≤ 10 và số lượng
các ô khác trống không quá
2
nm ×
.
A B D
C 1 2
2 1 C
A B D
m = 4, n = 6
1
2
3
4

1 2 3 4 5 6
o Olympic tin h

c Vi

t Nam
Bảng B
Bài 1. Chọn ô
Cho m

t b

ng hình ch

nh

t kích th
ướ
c 4×n ô vuông. Các dòng
đượ
c
đ
ánh s

t

1
đế
n 4, t


trên
xu

ng d
ướ
i, các c

t
đượ
c
đ
ánh s

t

1
đế
n n t

trái qua ph

i. Ô n

m trên giao c

a dòng i và c

t j
đượ
c

g

i là ô (i,j). Trên m

i ô (i,j) có ghi m

t s

nguyên a
ij
, i =1, 2, 3, 4; j =1, 2, ..., n. M

t cách ch

n ô là
vi

c xác
đị
nh m

t t

p con khác r

ng S c

a t

p t


t c

các ô c

a b

ng sao cho không có hai ô nào trong S
có chung c

nh. Các ô trong t

p S
đượ
c g

i là ô
đượ
c ch

n, t

ng các s

trong các ô
đượ
c ch

n
đượ

c g

i
là tr

ng l
ượ
ng c

a cách ch

n.
Ví d

: Xét b

ng v

i n=3 trong hình v

d
ướ
i
đ
ây
1 2 3
1 -1 9 3
2 -4 5 -6
3 7 8 9
4 9 7 2

Cách ch

n c

n tìm là t

p các ô S = {(3,1), (1,2), (4,2), (3,3)} v

i tr

ng l
ượ
ng 32.
Yêu cầu:
Hãy tìm cách ch

n ô v

i tr

ng l
ượ
ng l

n nh

t.
Dữ liệu:
Vào t


file v
ă
n b

n SELECT.INP:


Dòng
đầ
u tiên ch

a s

nguyên d
ươ
ng n là s

c

t c

a b

ng.


Dòng th

j trong s


n dòng ti
ế
p theo ch

a 4 s

nguyên a
1j
, a
2j
, a
3j
, a
4j
, hai s

liên ti
ế
p cách nhau
ít nh

t m

t d

u cách, là 4 s

trên c

t j c


a b

ng.
Kết quả:
Ghi ra file v
ă
n b

n SELECT.OUT tr

ng l
ượ
ng c

a cách ch

n tìm
đượ
c.
Ví dụ:
SELECT.INP SELECT.OUT SELECT.INP SELECT.OUT
3
-1 -4 7 9
9 5 8 7
3 -6 9 2
32

3
5 5 5 5

5 5 5 5
5 5 5 5
30
Hạn chế:
Trong t

t c

các test: n ≤ 10000, |a
ij
|≤ 30000. Có 50% s

l
ượ
ng test v

i n ≤ 1000.
o Olympic tin h

c Vi

t Nam

Bài 2. Quân tượng
Xét bàn c

vuông kích th
ướ
c n
×

n. Các dòng
đượ
c
đ
ánh s

t

1
đế
n n, t

d
ướ
i lên trên. Các c

t
đượ
c
đ
ánh s

t

1
đế
n n t

trái qua ph


i. Ô n

m trên giao c

a dòng i và c

t j
đượ
c g

i là ô (i,j). Trên bàn c


có m (0

m

n) quân c

. V

i m > 0, quân c

th

i

ô (r
i
, c

i
), i = 1,2,..., m. Không có hai quân c

nào

trên cùng m

t ô. Trong s

các ô còn l

i c

a bàn c

, t

i ô (p, q) có m

t quân t
ượ
ng. M

i m

t n
ướ
c
đ
i,

t

v

trí
đ
ang
đứ
ng quân t
ượ
ng ch

có th

di chuy

n
đế
n
đượ
c nh

ng ô trên cùng
đườ
ng chéo v

i nó
mà trên
đườ
ng

đ
i không ph

i qua các ô
đ
ã có quân.


C

n ph

i
đư
a quân t
ượ
ng t

ô xu

t phát (p, q) v

ô
đ
ích (s,t). Gi

thi
ế
t là


ô
đ
ích không có quân c

.
N
ế
u ngoài quân t
ượ
ng không có quân nào khác trên bàn c

thì ch

có 2 tr
ườ
ng h

p: ho

c là không th


t

i
đượ
c ô
đ
ích, ho


c là t

i
đượ
c sau không quá 2 n
ướ
c
đ
i (hình trái). Khi trên bàn c

còn có các quân
c

khác, v

n
đề
s

không còn
đơ
n gi

n nh
ư
v

y.
Yêu cầu:
Cho kích th

ướ
c bàn c

n, s

quân c

hi

n có trên bàn c

m và v

trí c

a chúng, ô xu

t phát
và ô
đ
ích c

a quân t
ượ
ng. Hãy xác
đị
nh s

n
ướ

c
đ
i ít nh

t c

n th

c hi

n
để

đư
a quân t
ượ
ng v

ô
đ
ích
ho

c
đư
a ra s

-1 n
ế
u

đ
i

u này không th

th

c hi

n
đượ
c.
Dữ liệu:
Vào t

file v
ă
n b

n BISHOP.INP:


Dòng
đầ
u tiên ch

a 6 s

nguyên n, m, p, q, s, t;



N
ế
u m > 0 thì m

i dòng th

i trong m dòng ti
ế
p theo ch

a m

t c

p s

nguyên r
i
, c
i
xác
đị
nh v


trí quân th

i.
Hai s


liên ti
ế
p trên cùng m

t dòng
đượ
c ghi cách nhau ít nh

t m

t d

u cách.
Kết quả: Đư
a ra file v
ă
n b

n BISHOP.OUT m

t s

nguyên là s

n
ướ
c
đ
i tìm

đượ
c.
Ví dụ:
BISHOP.INP BISHOP.OUT
3 8 3 7 2 1 4
5 4
3 4
4 7



Hạn chế
: Trong t

t c

các test: 1

n

200. Có 60% s

l
ượ
ng test v

i n

20.
o Olympic tin h


c Vi

t Nam

Bài 3. Kênh xung yếu
M

t h

th

ng n máy tính (các máy tính
đượ
c
đ
ánh s

t

1
đế
n n)
đượ
c n

i l

i thành m


t m

ng b

i m
kênh n

i, m

i kênh n

i hai máy nào
đ
ó và cho phép truy

n tin m

t chi

u t

máy này
đế
n máy kia. Ta
g

i m

t
mạch vòng

c

a m

ng
đ
ã cho là m

t dãy các máy tính và các kênh n

i chúng có d

ng:
u
1
, e
1
, u
2
, ...,u
i
, e
i
, u
i+1
, ..., u
k-1
, e
k-1
, u

k
, e
k
, u
1

trong
đ
ó u
1
, u
2
, ..., u
k
là các máy tính khác nhau trong m

ng, e
i
– kênh truy

n tin t

máy u
i

đế
n máy
u
i+1
(i = 1, 2, ..., k-1), e

k
là kênh truy

n tin t

máy u
k

đế
n máy u
1
. M

t kênh truy

n tin trong m

ng
đượ
c
g

i là
kênh xung yếu
n
ế
u nh
ư
b


t c

m

ch vòng nào c

a m

ng c
ũ
ng
đề
u ch

a nó.
Yêu cầu:
Hãy xác
đị
nh t

t c

các kênh xung y
ế
u c

a m

ng
đ

ã cho.
Dữ liệu:
Vào t

file v
ă
n b

n CIRARC.INP:


Dòng
đầ
u tiên ch

a 2 s

nguyên d
ươ
ng n và m.


Dòng th

i trong s

m dòng ti
ế
p theo mô t


kênh n

i th

i bao g

m hai s

nguyên d
ươ
ng u
i
, v
i

cho bi
ế
t kênh n

i th

i cho phép truy

n tin t

máy u
i

đế
n máy v

i
.
Các s

trên cùng m

t dòng
đượ
c ghi cách nhau b

i d

u cách.
Kết quả:
Ghi ra file v
ă
n b

n CIRARC.OUT:


Dòng
đầ
u tiên ghi s

nguyên k là s

l
ượ
ng kênh xung y

ế
u trong m

ng
đ
ã cho. Ghi k = -1 n
ế
u
m

ng không ch

a kênh xung y
ế
u.


N
ế
u k>0 thì m

i dòng trong s

k dòng ti
ế
p theo ghi thông tin v

m

t kênh xung y

ế
u tìm
đượ
c
theo qui cách mô t

gi

ng nh
ư
trong file d

li

u vào.
Ví dụ:

CIRARC.INP CIRARC.OUT CIRARC.INP CIRARC.OUT
2 2
1 2
2 1
2
1 2
2 1
3 3
1 2
2 3
1 3
-1


Hạn chế
: Trong t

t c

các test: n

1000, m ≤ 20000. Có 50% s

l
ượ
ng test v

i n

200.
o Olympic tin h

c Vi

t Nam

Bài 4. Biến đổi bảng
Cho m

t b

ng hình ch

nh


t kích th
ướ
c m×n ô vuông kích th
ướ
c
đơ
n v

. Các dòng
đượ
c
đ
ánh s

t

1
đế
n m, t

trên xu

ng d
ướ
i. Các c

t
đượ
c

đ
ánh s

t

1
đế
n n, t

trái qua ph

i. M

i ô c

a b

ng ho

c
đượ
c
để
tr

ng ho

c ch

a m


t ký t

l

y t

t

p Σ g

m các
ch


s

t

0
đế
n 9 và các ch

cái la tinh in hoa t

A
đế
n Z. Hai ô
ch


a cùng m

t ký t


đượ
c g

i là gi

ng nhau. M

i ký t

c

a
t

p Σ xu

t hi

n

không quá 4 ô trong b

ng. Hai ô gi

ng

nhau có th

xoá
đượ
c n
ế
u chúng có c

nh chung ho

c có th


n

i các tâm (giao
đ
i

m c

a hai
đườ
ng chéo) c

a chúng v

i
nhau b


ng m

t
đườ
ng g

p khúc g

m không quá 3
đ
o

n
th

ng
độ
dài nguyên, m

i
đ
o

n song song v

i c

nh c

a

b

ng và ngo

i tr

hai ô c

n xoá,
đườ
ng g

p khúc ch

qua các
ô tr

ng hay n

m ngoài b

ng. Các ô b

xoá tr

thành ô tr

ng. M

i l


n xoá m

t c

p ô c

a b

ng
đượ
c g

i
là m

t b
ướ
c. Hình bên nêu ví d

v

i tr
ườ
ng h

p m = 4 và n = 6. B
ướ
c
đầ

u tiên có th

xoá hai ô ch

a
ký t

‘A’, ti
ế
p theo, l

n l
ượ
t xoá các c

p ô ch

a ‘B’, ch

a ‘C’ và c

p ô ch

a ‘D’.

ví d

này, sau khi
th


c hi

n 4 b
ướ
c xoá có th

, trong b

ng còn l

i 4 ô không th

xoá
đượ
c.

Yêu cầu:
Cho m, n và m xâu
độ
dài n mô t

các dòng c

a b

ng. Hãy xác
đị
nh s

l

ượ
ng ô l

n nh

t có
th

xoá
đượ
c.

Dữ liệu:
Vào t

file v
ă
n b

n CHANGE.INP:


Dòng
đầ
u tiên ch

a 2 s

nguyên m, n
đượ

c ghi cách nhau b

i d

u cách.


Dòng th

i+1 ch

a xâu n ký t

mô t

dòng th

i c

a b

ng (i = 1, 2, ..., m). Các ô tr

ng
đượ
c th


hi


n b

ng d

u ch

m (‘.’).

Kết quả: Đư
a ra file v
ă
n b

n CHANGE.OUT m

t s

nguyên là s

l
ượ
ng ô l

n nh

t có th

xoá
đượ
c.


Ví dụ:
CHANGE.INP CHANGE.OUT CHANGE.INP CHANGE.OUT
4 5
ABD...
C.12..
..21C.
A.B.D.

8


4 6
ABCDUV
BADCVU
ABCDUV
BADCVU
24



Hạn chế:
Trong t

t c

các test: 0 < m

10, 0 < n


10. Có 60% s

l
ượ
ng test có m

5, n

6 và s


l
ượ
ng các ô khác tr

ng không quá
2
nm ×
.
A B D
C 1 2
2 1 C
A B D
m = 4, n = 6
1
2
3
4
1 2 3 4 5 6
o Olympic tin h


c Vi

t Nam
Năm 2007
Bài 1. Dãy con không giảm dài nhất

(6
đ
i

m)

Cho dãy s

nguyên d
ươ
ng a
1
, a
2
, ..., a
n
.
Dãy s


a
i
, a

i+1
, ..., a
j
th

a mãn a
i

a
i+1

...

a
j
,
v

i 1

i

j

n
đượ
c g

i là dãy con không gi


m c

a dãy s


đ
ã cho và khi
đ
ó s

j-i+1
đượ
c g

i là
độ

dài c

a dãy con này.
Yêu cầu:
Trong s

các dãy con không gi

m c

a dãy s



đ
ã cho mà các ph

n t

c

a nó
đề
u thu

c dãy s


{u
k
} xác
đị
nh b

i u
1
= 1, u
k
= u
k-1
+ k (k

2), hãy tìm dãy con có
độ

dài l

n nh

t.
Dữ liệu:
Vào t

file v
ă
n b

n MAXISEQ.INP


Dòng
đầ
u tiên ch

a m

t s

nguyên d
ươ
ng n (n

10
4
);



Dòng th

i trong n dòng ti
ế
p theo ch

a m

t s

nguyên d
ươ
ng a
i
(a
i


10
8
) là s

h

ng th

i c


a
dãy s


đ
ã cho, i = 1, 2, ..., n.
Kết quả:
Ghi ra file v
ă
n b

n MAXISEQ.OUT

s

nguyên d là
độ
dài c

a dãy con không gi

m tìm
đượ
c
(quy
ướ
c r

ng n
ế

u không có dãy con nào th

a mãn
đ
i

u ki

n
đặ
t ra thì d = 0).
Ví dụ:
Cho dãy s

có 8 ph

n t

: 2, 2007, 6, 6, 15, 16, 3, 21. Các dãy con không gi

m c

a dãy s


đ
ã
cho mà các ph

n t


c

a nó
đề
u thu

c dãy {u
k
} là: 6, 6, 15 và 3, 21 (vì u
2
= 3, u
3
= 6, u
5
= 15, u
6
=
21). Dãy c

n tìm là 6, 6, 15 có
độ
dài là 3.

MAXISEQ.INP MAXISEQ.OUT
8
2
2007
6
6

15
16
3
21
3

o Olympic tin h

c Vi

t Nam

Bài 2. Siêu thị may mắn

(7
đ
i

m)

An
đượ
c m

i tham gia trò ch
ơ
i “Siêu th

may m


n” do
đ
ài truy

n hình ZTV t

ch

c. Siêu th


đượ
c
đặ
t
trong tr
ườ
ng quay truy

n hình có n m

t hàng
đượ
c
đ
ánh s

t

1

đế
n n và m

t hàng th

i
đượ
c niêm y
ế
t
giá là c
i
đồ
ng, i = 1, 2, ..., n. Theo th

l

c

a trò ch
ơ
i, An
đượ
c ban t

ch

c t

ng m


t th

mua hàng có
giá tr

là s
đồ
ng và ph

i dùng h
ế
t s

ti

n trong th

này
để
mua hàng trong siêu th

v

i
đ
i

u ki


n m

t
hàng th

i ch


đượ
c mua v

i s

l
ượ
ng nhi

u nh

t là m
i
, i = 1, 2, …, n. An s

là ng
ườ
i th

ng cu

c n

ế
u
tìm
đượ
c t

ng s

cách mua hàng th

a mãn yêu c

u
đặ
t ra và ch

ra m

t cách mua hàng n
ế
u có.
Yêu cầu:
Hãy giúp An tr

thành ng
ườ
i th

ng cu


c khi cho b

n bi
ế
t tr
ướ
c các giá tr

n, s, c
i
và m
i
(1

n

500; 1

s

10
5
; 1

c
i


10
4

; 1

m
i


100) v

i i = 1, 2, …, n.
Dữ liệu:
Vào t

file v
ă
n b

n SMARKET.INP


Dòng
đầ
u tiên ch

a hai s

nguyên d
ươ
ng s và n;



Dòng th

i trong n dòng ti
ế
p theo ch

a hai s

nguyên d
ươ
ng c
i
và m
i
v

i i = 1, 2, …, n.
Kết quả:
Ghi ra file v
ă
n b

n SMARKET.OUT


Dòng
đầ
u tiên ghi s

nguyên d là t


ng s

cách mua hàng tìm
đượ
c;


N
ế
u d

1 thì dòng th

hai ghi m

t cách mua hàng tìm
đượ
c là m

t dãy n s

nguyên, trong
đ
ó s


h

ng th


i là s

l
ượ
ng m

t hàng th

i mua
đượ
c trong cách mua hàng này, i = 1, 2, …, n.
Hai s

liên ti
ế
p trên m

t dòng trong file d

li

u và file k
ế
t qu

cách nhau ít nh

t m


t d

u cách.
Ví dụ:
SMARKET.INP SMARKET.OUT
12 3
4 1
6 2
2 1
2
0 2 0

×