Professional Documents
Culture Documents
Sach Tin Danh Cho Hoc Sinh PTNK
Sach Tin Danh Cho Hoc Sinh PTNK
MỤC LỤC
ĐỒNG HỒ BÁO THỨC ............................................................................................................................... 6
BÁO THỨC .................................................................................................................................................. 7
PHẢN VẬT CHẤT....................................................................................................................................... 8
CÁNH ĐỒNG CỎ ...................................................................................................................................... 10
TÁC GIẢ .................................................................................................................................................... 11
TỔNG NHỎ NHẤT .................................................................................................................................... 12
ĐẤU GIÁ .................................................................................................................................................... 13
DÃY SỐ TRUNG BÌNH CỘNG ................................................................................................................ 14
THU NHẶT BÓNG .................................................................................................................................... 15
HỆ ĐẾM ..................................................................................................................................................... 16
HẢI LY ....................................................................................................................................................... 17
ĐƢỜNG ĐI BFS......................................................................................................................................... 19
CẦU PHAO ................................................................................................................................................ 20
CẦU KHỈ .................................................................................................................................................... 21
SỐ ĐẸP ....................................................................................................................................................... 23
XÂU KÝ TỰ NGOẶC ............................................................................................................................... 24
KHÔI PHỤC NGOẶC ................................................................................................................................ 25
LỊCH BYTELAND ..................................................................................................................................... 26
HỘP KẸO ................................................................................................................................................... 27
ĐUA XE ..................................................................................................................................................... 28
PHÒNG THỦ PHÁO ĐÀI.......................................................................................................................... 29
BÀN CỜ ..................................................................................................................................................... 30
SÔ CÔ LA .................................................................................................................................................. 31
RẠP CHIẾU BÓNG ................................................................................................................................... 32
GIAO THÔNG THÀNH PHỐ.................................................................................................................... 33
MÃ HÓA ĐA LỚP ..................................................................................................................................... 34
CÁC ĐỒNG XU ......................................................................................................................................... 36
LẮP RÁP MÁY TÍNH ............................................................................................................................... 37
ĐIỀU HÒA NHIỆT ĐỘ.............................................................................................................................. 38
CÁC THÀNH PHẦN LIÊN THÔNG ........................................................................................................ 39
DÃY LIÊN TIẾP ........................................................................................................................................ 40
BAO LỒI .................................................................................................................................................... 41
BỎNG NẾP ................................................................................................................................................. 42
VƢỢT SUỐI ............................................................................................................................................... 43
ĐƢỜNG THỦY .......................................................................................................................................... 44
CẮT VẢI .................................................................................................................................................... 45
NGÀY THÁNG .......................................................................................................................................... 46
ƢỚC SỐ ...................................................................................................................................................... 48
GIẢI MÃ SỐ............................................................................................................................................... 49
KHOẢNG CÁCH SỐ ................................................................................................................................. 50
LÂY NHIỄM EBOLA ................................................................................................................................ 51
BẦU CỬ ..................................................................................................................................................... 52
XÓA SỐ ...................................................................................................................................................... 53
EQUATION ................................................................................................................................................ 54
XÂY DỰNG HÀNG RÀO ......................................................................................................................... 55
An thƣờng mân mê chỉnh chiếc đồng hồ xinh xắn của mình để đặt báo thức vào mỗi tối. Đêm
qua cô bé đã mơ về chiếc đồng hồ yêu quý của mình, nhƣng không may khi tỉnh dậy lại quên
thời gian đã hiển thị trên đồng hồ mà chỉ còn nhớ số vạch LED hiển thị
trên đồng hồ.
Thời gian hiển thị trên đồng hồ của An đƣợc biểu diễn bởi 4 chữ số, 2
chữ số cho giờ và 2 chữ số cho phút, và đƣợc thiết lập hiển thị ở chế độ 24h. Ví dụ hình bên biểu
diễn cho 9h30 (có số 0 ở đầu).
Dữ liệu: vào từ tập tin văn bản ALARM.INP số nguyên là số vạch hiển thị trên
đồng hồ.
Kết quả: xuất ra tập tin văn bản ALARM.OUT 5 kí tự hiển thị theo định dạng “hh:mm” là thời
gian hợp lệ hiển thị trên đồng hồ .
Ví dụ:
ALARM.INP ALARM.OUT
23 09:30
ALARM.INP ALARM.OUT
28 Impossible
BÁO THỨC
Mỗi sáng, khi tiếng chuông đồng hồ báo thức vang lên, Steve truồi ra khỏi giƣờng rồi tất bật
chuẩn bị đi học trong trạng mơ màng ngái ngủ. Do đãng trí, đôi khi Steve vẫn để chuông cả vào
chủ nhật. Tuy vậy điều đó cũng không làm Steve phải phiền lòng nhiều. Thật là thú vị khi đƣợc
nằm trên giƣờng đệm êm ấm cho đến khi thực sự tỉnh ngủ. Steve ƣớc gì ngày nào cũng đƣợc nhƣ
vậy. Một ngƣời bạn đã mách cho Steve một giải pháp đơn giản: đặt chuông sớm 45 phút và
Steve làm theo lời khuyên.
Đồng hồ của Steve thuộc loại 24giờ, nghĩa là sau 23 giờ 59 phút sẽ là 00 giờ 00 phút.
Yêu cầu: Cho h và m là giờ và phút mà Steve cần dậy. Hãy xác định x và y – giờ và phút Steve
cần dặt báo thức theo lời khuyên của bạn bè.
Dữ liệu: Vào từ file văn bản ALARM.INP gồm một dòng chứ 2 số nguyên h và m.
Kết quả: Đƣa ra file văn bản ALARM.OUT trên một dòng hai số nguyên x và y.
Ví dụ:
ALARM.INP ALARM.OUT
0 30 23 45
Tiếp theo n dòng chứa ba số nguyên li, ri và ci – số lƣợng nhỏ nhất, lớn nhất phản vật chất nhận
đƣợc trong kết quả thí nghiệm loại i, và chi phí của thí nghiệm loại này ( 0 ≤ li ≤ ri ≤ a, 0 ≤ ci ≤
100 ).
Dữ liệu ra
Đƣa ra một số nguyên x là lợi nhuận lớn nhất mà đảm bảo có thể nhận đƣợc.
Ví dụ:
ANTI.INP ANTI.OUT
1 17 11999999970
4 6 10
2 11 9999999890
2 2 100
355
CÁNH ĐỒNG CỎ
Ngƣời ta chia một cánh đồng hình chữ nhật thành ô vuông đơn vị có kích thƣớc bằng
nhau . Tại mỗi ô vuông đơn vị, ngƣời ta trồng cỏ hoặc để trống dành chỗ cho
lối đi. Ban đầu cỏ đƣợc trồng để chia cánh đồng thành rất nhiều vùng khác nhau, ngăn cách giữa
các vùng đất trồng cỏ là các lối đi. Tuy nhiên do giống cỏ dại phát triển rất nhanh nên sau một
thời gian, một số ô của lối đi đã bị cỏ mọc phủ lên làm một số vùng cỏ khác nhau trƣớc đây bị
sáp nhập lại, 2 vùng cỏ bị sáp nhập nếu chúng tồn tại 2 ô vuông đơn
vị có chung cạnh với nhau.
******##*******
Thông tin về các vùng cỏ trên cánh đồng đƣợc vệ tinh ghi nhận lại *****##********
******#######**
dƣới dạng một bản đồ với các kí hiệu sau: 1 dấu * thể hiện vùng cỏ #######****##**
mọc trên một ô vuông đơn vị, 1 dấu # thể hiện 1 ô vuông đơn vị ******###**#***
**###***###****
dành làm lối đi. Ví dụ dƣới đây minh họa kết quả ghi nhận của vệ
tinh đối với cánh đồng bị chia thành 4 vùng cỏ:
Yêu cầu: Hãy đếm số vùng cỏ còn lại trên cánh đồng.
Kết quả: Xuất ra tập tin văn bản AREA.OUT số vùng cỏ trên cánh đồng.
ụ:
AREA.INP AREA.OUT
6 15 4
******##*******
*****##********
******#######**
#######****##**
******###**#***
**###***###****
TÁC GIẢ
Các phát minh khoa học lớn thƣờng đƣợc đặt bằng tên các nhà khoa học đã tìm ra chúng. Ví dụ,
hệ thống mã hóa phi đối xứng RSA do các nhà bác học Rivest, Shamir và Adleman đề xuất. Một
ví dụ quen thuộc khác – giải thuật Knuth – Morris – Pratt đƣợc gọi bởi tên các tác giả là Knuth,
Morris và Pratt.
Các tài liệu khoa học có rất nhiều và không hoàn toàn nhất quán khi đặt tên giải thuật. Có khi
ngƣời ta dùng phƣơng án ngắn gọn – dùng chữ cái đầu của tên tác giả (nhƣ RSA), có khi dùng
phƣơng án đầy đủ – tên các tác giả, nối với nhau bằng ký tự “-“ ( nhƣ Knuth – Morris – Pratt).
Trong phạm vi một bài báo, việc dùng cả hai dạng đặt tên là thiếu thẩm mỹ, vì vậy, nên chuẩn
hóa theo một cách gọi, chẳng hạn – phƣơng án ngắn gọn.
Yêu cầu: Cho xâu chứa tên tên giải thuật theo phƣơng án đầy đủ, có độ dài không quá 100 ký tự,
bao gồm các chữ cái la tinh hoa và thƣờng và ký tự “-“ (Mã ASCII là 45). Tên mỗi tác giả bắt
đầu bằng chữ cái hoa. Hãi xác định phƣơng án ngắn gọi tên giải thuật của các tác giả này.
Dữ liệu: Vào từ file văn bản AUTHOR.INP gồm một dòng chứa xâu ký tự tên giải thuật phƣơng
án đầy đủ.
Kết quả: Đƣa ra file văn bản AUTHOR.OUT một dòng chứa tên giải thuật theo phƣơng án ngắn
gọn.
Ví dụ:
AUTHOR.INP AUTHOR.OUT
Knuth-Morris-Pratt KMP
Kết quả: ghi ra tập tin văn bản ASUMMIN.OUT hai chỉ số và của hai phần tử tƣơng ứng tìm
đƣợc.
Ví dụ
ASUMMIN.INP ASUMMIN.OUT
45 24
1829
-5 -6 3 -7 -4
Giải thích:
ĐẤU GIÁ
Sở giao thông Hà Nội quyết định bán đấu giá các biển số xe đẹp để lấy tiền ủng hộ đồng bào lũ
lụt miền Trung. Một biển số xe đƣợc gọi là đẹp nếu nó thỏa mãn các điều kiện sau:
Yêu cầu: Cho hai số nguyên dƣơng và , hãy tìm số lƣợng các biển số xe đẹp.
Dữ liệu: vào từ tập tin văn bản AUCTION.INP chứa hai số nguyên
Kết quả: ghi ra tập tin văn bản AUCTION.OUT số lƣợng biển số xe đẹp tìm đƣợc.
Ví ụ:
AUCTION.INP AUCTION.OUT
11111 22222 23
Chẳng hạn, dãy có giá trị thì giá trị của dãy sẽ là
Yêu cầu: cho giá trị các phần tử của dãy . Hãy tìm dãy ban đầu phù hợp với cách tính của
Mirko.
Kết quả: ghi ra tập tin văn bản AVGSEQ.OUT gồm 1 dòng chứa dãy số tìm đƣợc.
Dữ liệu vào đƣợc cho đảm bảo dãy tìm đƣợc là dãy số nguyên và có giá trị không vƣợt quá
.
ụ:
AVGSEQ.INP AVGSEQ.OUT
4 3 1 5 11
3235
Yêu cầu: cho số nguyên dƣơng , hỏi đội chơi cần thực hiện ít nhất là bao nhiêu lƣợt để lấy hết
tất cả quả bóng của ban tổ chức.
Kết quả: ghi ra tập tin văn bản BALLOONS.OUT số lƣợt ít nhất mà đội chơi cần thực hiện để
lấy hết tất cả quả bóng.
ụ:
BALLOONS.INP BALLOONS.OUT
16 4
HỆ ĐẾM
Steve rất hào hứng với các bài tập chuyển đổi cơ số. Sau khi làm xong các bài tập về nhà, Steve
ngồi viết lần lƣợt các số tự nhiên 1, 2, 3, . . . sang dạng biểu diển ở cơ số b (2 < b ≤ 36). Để biểu
diễn chữ số, Steve dùng các ký tự từ 0 đến 9 và các chữ cái từ a đến z. Sau đó Steve gạch đi tất
cả những số có dạng biểu diễn tƣơng ứng với một số nào đó trong cơ số c (2 ≤ c < b).
Ví dụ, với b = 3, dãy số tự nhiên sau khi chuyển cơ số sẽ là 1, 2, 10, 11, 12, 20,21, . . . Nếu gạch
khỏi dãy tất cả các số tƣơng ứng với một số nào đó trong hệ đếm c = 2, dãy các số còn lại sẽ là
2, 12, 20, 21, . . .
Ngắm nhìn dãy số còn lại Steve chợt nghĩ: “Cần phải kiểm tra xem mình có bỏ sót số khi viết
hoặc chuyển hệ đếm sai hay không”. Một trong các cách kiểm tra là tính số thứ n còn lại trong
dãy và so sánh với kết quả dếm trực tiếp trên dãy.
Yêu cầu: Cho 3 số nguyên n, b và c ( 1 ≤ n ≤ 1012, 2 ≤ c < b ≤ 36). Hãy xác định và đƣa ra ( ở
hệ thập phân) số thứ n còn lại trong dãy. Các số còn lại đƣợc đánh số từ 1.
Dữ liệu: Vào từ file văn bản BASES.INP gồm một dòng chứa 3 số nguyên n, b và c.
Kết quả: Đƣa ra file văn bản BASES.OUT một số nguyên – số tìm đƣợc.
Ví dụ:
BASES.INP BASES.OUT
2 3 2 5
HẢI LY
Hải ly là loài vật rất thông minh và nổi tiếng là bậc thầy trong việc xây dựng các đập ngăn sông
suối.
Hải ly đứng trƣớc một hàng cây dài vô tận (cả về hai phía).Với chú hải ly, một cây có thể thuộc
loại tốt hay xấu. Khi chú gặm một cây, tùy theo tình hình cụ thể, loại cây có thể vẫn giữ nguyên
hoặc chuyển từ tốt sang xấu hay ngƣợc lại. Ban đầu tất cả các cây dều thuộc loại tốt.
Chú hải ly có thể có một trong năm trạng thái tình cảm: A – Dận dữ (Agry), B – Bận rộn (Busy),
C – Hứng khởi (Creative), D – Chán nản (Despaired), E – Mệt mỏi (Exhausted). Ban đầu hải ly ở
trạng thái A.
Khi hải ly đứng trƣớc một cây, phụ thuộc vào trạng thái tính cảm của mình và loại cây nó sẽ làm
những việc sau:
Gặm cái cây, loại cây có thể sẽ bị thay đổi,
Giữ nguyên hoặc thay đổi trạng thái tình cảm của mình,
Chuyển sang cây kề cạnh bên phải hoặc bên trái.
Với một tổ hợp tình cảm và loại cây trƣớc mặt hải ly tự cho là đập đã hoàn thành và cảm thấy vui
sƣớng (Happy). Cũng có thể hải ly không bao giờ thấy sung sƣớng trong suốt quá trình hoạt
động không ngừng của mình.
Yêu cầu: Cho bộ quy tắc hành động của hải ly, bao gồm 10 từ, mỗi từ 3 ký tự. Từ thứ nhất xác
định hành động của hải ly khi ở trạng thái A và đứng trƣớc cây tốt, từ thứ hai xác định hành
động của hải ly khi ở trạng thái A và đứng trƣớc cây xấu, từ thứ ba xác định hành động của hải
ly khi ở trạng thái B và đứng trƣớc cây tốt, từ thứ tƣ xác định hành động của hải ly khi ở trạng
thái B và đứng trƣớc cây xấu, . . . Giả thiết từ có dạng αβγ.
αβγ
Trạng thái mới của hải ly.
L – Chuyển sang cây bên trái, H –Vui sướng..
R – Chuyển sang cây bên phải
Hãy xác định xem đến một lúc nào đó hải ly sẽ cảm thấy vui sƣớng hay không.
Dữ liệu: Vào từ file văn bản BEAVER.INP, gồm một dòng chứa 10 từ, các từ cách nhau một dấu
cách.
Kết quả: Đƣa ra file văn bản BEAVER.OUT thông báo happy beaver hoặc unhappy
beaver tùy theo kết quả nhận đƣợc.
Ví dụ:
BEAVER.INP BEAVER.OUT
1RB 1LC 1RC 1RB 1RD 0LE 1LA 1LD 1RH 0LA happy beaver
ĐƯỜNG ĐI BFS
Cho đồ thị có hƣớng gồm đỉnh và cung, và là hai đỉnh của . Một dãy các
đỉnh sao cho đƣợc gọi là một đƣờng đi
từ tới .
Biết rằng tồn tại ít nhất một đƣờng đi từ tới , hãy chỉ ra đƣờng đi đơn qua ít cung nhất. Nếu có
nhiều đƣờng đi đơn cùng qua ít cung nhất, hãy chỉ ra đƣờng đi có thứ tự từ điển nhỏ nhất trong
số đó.
- Dòng 1 chứa số đỉnh , số cung , đỉnh xuất phát , đỉnh cần đến .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên dƣơng thể hiện có cung nối từ đỉnh tới
đỉnh trong đồ thị.
Kết quả: ghi ra tập tin văn bản BFS.OUT các đỉnh theo đúng thứ tự trên đƣờng đi tìm đƣợc, bắt
đầu từ đỉnh , kết thúc ở đỉnh
ụ:
BFS.INP BFS.OUT
8 12 1 8 1378 1
12
13
2 3
23
24
31 4 7 5
35
37
46 6 8
62
68
78
76
CẦU PHAO
Mƣa to liên tục mấy ngày liền đã biến con suối ven làng thành một con sông thực sự. Để học
sinh có thể đi học an toàn ngƣời ta quyết định bắc tạm một cầu phao.Nguyên vật liệu làm cầu
đƣợc một công trƣờng gần đó cho mƣợn, bao gồm x súc
gỗ tròn độ dài a và y súc gỗ tròn độ dài b. Tất cả chúng
đều có cùng một bán kính.
Cầu phao phải đƣợc ghép từ m hàng gỗ. Mỗi hàng bao
gồm một hoặc một vài súc gỗ. Các súc gỗ phải đƣợc giữ
nguyên, không đƣợc cƣa ngắn.
Ngƣời ta muốn xây dựng cây cầu với độ rộng lớn nhất
có thể. Độ rộng của cầu đƣợc xác định bởi độ dài của
hàng nhỏ nhất.
Ví dụ, cầu cần xây dựng có 7 hàng và ta có 6 súc gỗ độ dài 3, mƣời súc gỗ độ dài 2, khi đó độ
rộng tối đa của cầu là 5.
Yêu cầu: Cho x, a, y, b và m, tất cả đều nguyên và có giá trị không vƣợt quá 150. Tổng số lƣợng
các súc gỗ không ít hơn m. Hãy xác định độ rộng tối đa của cây cầu.
Dữ liệu: Vào từ file văn bản BRIDGE.INP, gồm dòng chứa 5 số nguyên x, a, y, b và m.
Kết quả: Đƣa ra file văn bản BRIDGE.OUT một số nguyên – độ rộng tối đa của cây cầu.
Ví dụ:
BRIDGE.INP BRIDGE.OUT
6 3 10 2 7 5
CẦU KHỈ
của bàn cờ đƣợc sơn màu đen. Hãy xác định có bao 3
BCELLS.INP BCELLS.OUT
4534 10
SỐ ĐẸP
Một số nguyên dƣơng đƣợc gọi là số đẹp nếu tổng các chữ số của nó (trong hệ thập phân) chia
hết cho số chữ số. Các số đƣợc xét không chứa số 0 không có nghĩa. Ví dụ, 15 là một số đẹp vì
1+5 chia hết cho 2.
Các số đẹp đƣợc đánh số từ 1 trở đi theo thứ tự tăng dần của giá trị.
Yêu cầu: Cho số nguyên dƣơng n (1 ≤ n ≤ 100 000). Hãy tìm số đẹp thứ n.
Dữ liệu: Vào từ file văn bản BEAUTY.INP gồm nhiều tests, mỗi test ghi trên một dòng chứa
một số nguyên n.
Kết quả: Đƣa ra file văn bản BEAUTY.OUT, kết quả mỗi test đƣa ra trên một dòng.
Ví dụ:
BEAUTY.INP BEAUTY.OUT
1 1
15 20
XÂU KÝ TỰ NGOẶC
Xét xâu chỉ chứa các ký tự ngoặc tròn (, ), ngoặc vuông [, ] và ngoặc nhọn {, }. Để ngắn gọn, ta
gọi nó là xâu ngoặc.
Định nghĩa xâu ngoặc đúng:
Xâu rỗng đƣợc coi là xâu ngoặc đúng,
Nếu a là xâu ngoặc đúng thì (a), [a], {a} cũng là các xâu ngoặc đúng,
Nếu a và b là các xâu ngoặc đúng thì ab cũng là xâu ngoặc đúng.
Cho xâu S độ dài n. Xâu sksk+1sk+2…sns1 s2…sk-1 đƣợc gọi là xâu đẩy vòng của S. Bản thân S
cũng là một xâu đẩy vòng của S.
Yêu cầu: Cho xâu ngoặc S có độ dài không quá 1000. Hãy xác định có tồn tại một xâu đẩy vòng
của S là xâu ngoặc đúng hay không và đƣa ra câu trả lời Yes hoặc No.
Dữ liệu: Vào từ file văn bản BRACKETS.INP gồm một dòng chứa xâu S.
Kết quả: Đƣa ra file văn bản BRACKETS.OUT câu trả lời Yes hoặc No.
Ví dụ:
BRACKETS.INP BRACKETS.OUT
}{}(){ Yes
Ví dụ: ((()))(())()() là một dãy dấu ngoặc hợp lệ. các dấu mở ngoặc ở các vị trí: 1, 2, 3, 7, 8, 11,
13 tƣơng ứng lần lƣợt với các dấu đóng ngoặc ở các vị trí: 6, 5, 4, 10, 9, 12, 14.
Ban đầu có một dãy dấu ngoặc hợp lệ, ngƣời ta viết vào dƣới mỗi dấu ngoặc mở một số là số dấu
ngoặc (cả đóng và mở) nằm giữa dấu ngoặc mở đó và dấu ngoặc đóng tƣơng ứng:
( ( ( ) ) ) ( ( ) ) ( ) ( )
4 2 0 2 0 0 0
Sau đó xoá đi dãy ngoặc.
Yêu cầu: cho biết dãy số còn lại, hãy khôi phục lại dãy ngoặc ban đầu
Dữ liệu: vào từ tập tin văn bản BRACKETS.INP
Kết quả: xuất ra tập tin văn bản BRACKETS.OUT dãy dấu ngoặc khôi phục đƣợc.
Ví dụ:
BRACKETS.INP BRACKETS.OUT
7 ((()))(())()()
4202000
LỊCH BYTELAND
Xứ sở Byteland sử dụng lịch tƣơng tự với dƣơng lịch của Trái Đất. Mỗi năm ở Byteland có
tháng bắt đầu từ tháng 1. Tháng chẵn có 30 ngày và tháng lẻ có 31 ngày, nhƣ vậy tháng 1 có 31
ngày, tháng 2 có 30, tháng 3 có 31 ngày, …
Mỗi tuần ở Byteland có 7 ngày: thứ 1, thứ 2, thứ 3, thứ 4, thứ 5, thứ 6 và thứ 7.
Yêu cầu: cho biết ngày đầu năm mới ở Byteland là thứ trong tuần. Hãy xác định
ngày tháng ở Byteland là thứ mấy trong tuần.
Kết quả: ghi ra tập tin văn bản CALENDAR.OUT một số nguyên là kết quả tìm đƣợc.
Ví dụ:
CALENDAR.INP CALENDAR.OUT
3 5
10 1
HỘP KẸO
Đến mừng sinh nhật, một ngƣời bạn mang gói quà đến, đặt cẩn thận giữa bàn. Khi mở ra mọi
ngƣời đều trầm trồ thán phục: quá ngon và đẹp. Các viên bi sô cô la đƣợc xếp thành một hình
chóp tứ diện đều. Mọi ngƣời đều đồng ý với ý kiến của bạn chủ nhà: ”Còn hấp dẫn hơn cả kim
tự tháp Giza!”. Đáy của tứ diện đều là một tam giác đều lắp ráp từ các viên sô cô la. Mỗi lớp tiếp
theo ở trên cũng là một tâm
giác đều với cạnh ít hơn một
viên.
Bỗng một bạn nam, nổi tiếng là
tinh nghịch, kêu lên “Ai đấy?
Sao đến muộn thế!”. Trong khi
mọi ngƣời quay ra phía cửa chờ
đợi, bạn nam này bốc và ăn hết
các viên ở một số lớp trên của
tứ diện. Trò tinh quái này lập tức bị phát hiện. Mọi ngƣời lao vào “tay non faireplayer” để trừng
phạt. Kết quả là bàn tiệc bị chao đảo, khối kẹo (bây giờ chỉ còn là hình
chóp cụt) tóe ra, các viên kẹo lăn lung tung khắp nơi. Tất cả tập trung
vào việc đi tìm và nhặt kẹo. Số viên kẹo tìm lại đƣợc là n. Không ai
biết là có còn sót viên nào hay không. Mọi quyết định sẽ kiểm tra bằng
cách xếp chúng lại thành hình chóp cụt tứ diện đều. Nếu xếp đƣợc – có
thể yên tâm là đã nhặt đủ.
Yêu cầu: Cho số nguyên n ( 0 ≤ n ≤ 1017). Hãy xác định xem có thể
xếp đƣợc một hình chóp cụt tứ diện đều hay không.
Dữ liệu: Vào từ file văn bản CANDIES.INP gồm một dòng chứa số nguyên n.
Kết quả: Đƣa ra file văn bản CANDIES.OUT thông báo YES hoặc NO.
Ví dụ:
CANDIES.INP CANDIES.OUT
16 YES
ĐUA XE
Cũng nhƣ các bạn trẻ thời đại ngày nay, Rôn có rất nhiều ô tô đồ chơi. Điểm vƣợt trội duy nhất
là mọi ô tô của Rôn đều là loại xe điều khiển từ xa.
Rôn có thể tổ chức đua xe với các bạn cả ngày không chán. Trong số các dạng đua Rôn thich
nhất dạng đua theo đƣờng thẳng. Các đƣờng đua song song với nhau và kéo dài vô tận. Cuộc đua
cũng diễn ra cho đến khi Rôn thấy chán thì thôi.
Mỗi xe, khi xuất phát, nhận đƣợc một ƣu tiên riêng. Xe thứ i xuất phát ở vị trí cách đích xi và
chạy với tốc dộ vi không đổi. Các xe chạy thẳng theo cùng một hƣớng – xa dần khỏi đích xuất
phát. Theo lệnh xuất phát, các xe cùng bắt đầu chạy.
Cách đây không lâu lắm Rôn đƣợc trang bị thêm webcam. Rôn muốn quay lại những pha gay
cấn nhất của cuộc đua, đặc biệt là thời điểm khi lần đầu tiên có xe vƣợt nhau, tức là thời điểm có
2 xe cùng ở khoảng cách nhƣ nhau với vạch xuất phát. Tuy vậy, có thể rất lâu khi bắt đầu mới
có xe vƣợt nhau. Rôn quyết định tính ra thời điểm này để đặt webcam vào chế độ bật tự động.
Yêu cầu: Cho n, xi và vi (1 ≤ xi, vi ≤ 1 000, i = 1 ÷ n, 2 ≤ n ≤ 100). Hãy xác định với độ
chính xác 5 chữ số sau dấu chấm thập phân thời điểm đầu tiên có xe vƣợt nhau. Dữ liệu đảm bảo
tồn tại lời giải.
Dữ liệu: Vào từ file văn bản CARS.INP:
Dòng đầu tiên chứa số nguyên n,
Dòng thứ i trong n dòng sau chứa 2 số nguyên xi và vi.
Kết quả: Đƣa ra file văn bản CARS.OUT một số thực – thời điểm đầu tiên có xe vƣợt nhau.
Ví dụ:
CARS.INP CARS.OUT
2 3.00000
1 3
4 2
Ví dụ:
CASTLE.INP CASTLE.OUT
1 10 0
81
33 3
42
11
10 8
BÀN CỜ
Một bàn cờ gồm ô, mỗi ô vuông đƣợc sơn màu đen hoặc trắng đan xen nhau. Ô ở góc
dƣới bên trái bàn cờ đƣợc sơn màu đen. Hãy xác định có bao nhiêu ô đƣợc sơn màu đen trên bàn
cờ.
Dữ liệu: vào từ tập tin văn bản CHESSBOARD.INP 2 số nguyên dƣơng
Kết quả: ghi ra tập tin văn bản CHESSBOARD.OUT số ô vuông đƣợc sơn màu đen
Ví dụ:
CHESSBOARD.INP CHESSBOARD.OUT
34 6
SÔ CÔ LA
Một loại sô cô la mới đƣợc bày bán ở cửa hàng địa phƣơng. Sô cô la đƣợc sản xuất dƣới dạng
tấm, loại 1 ô, 2 ô, 4 ô, 8 ô, . . . tức là số ô có dạng 2m. Với m chẵn tấm sô cô la có hình vuông, với
m lẻ - hình chữ nhật, một cạnh dài gấp đôi cạnh kia.
Ví dụ, với k = 5, Steve sẽ mua tấm sô cô la có 8 miếng và sau 3 lần bẻ sẽ lấy đƣợc cho mình
đúng 5 miếng.
Yêu cầu: Cho số nguyên k (1 ≤ k ≤ 106). Hãy xác định tấm sô cô la nhỏ nhất cần mua và số lần
bẻ.
Dữ liệu: Vào từ file văn bản CHOCO.INP gồm một dòng chứa số nguyên k.
Kết quả: Đƣa ra file văn bản CHOCO.OUT hai số nguyên – diện tích tấm sô cô la và số lần bẻ.
Ví dụ:
CHOCO.INP CHOCO.OUT
5 8 3
Kết quả: Đƣa ra file văn bản CINEMA.OUT một số nguyên – số lƣợng tối đa những ngƣời có
thể để lon nƣớc cạnh ghế của mình.
Ví dụ:
CINEMA.INP CINEMA.OUT
9 7
SLLLLSSLL
Yêu cầu : Cho hai nút giao thông trên bản đồ, hãy tìm cách đi từ nút xuất phát đến nút đích sao
cho chi phí phải trả là ít nhất.
Kết quả : Ghi ra file văn bản CITY.OUT một số nguyên dƣơng là chi phí nhỏ nhất tìm đƣợc.
Ví dụ :
CITY.INP CITY.OUT
34 3
11
33
4321
3345
7964
MÃ HÓA ĐA LỚP
Trong mật mã học, một ngành toán học ứng dụng cho công nghệ thông tin, mã hóa là phƣơng
pháp để biến thông tin (phim ảnh, văn bản, hình ảnh...) từ định dạng bình thƣờng sang dạng
thông tin không thể hiểu đƣợc nếu không có phƣơng tiện giải mã. Giải mã là phƣơng pháp để
đƣa từ dạng thông tin đã đƣợc mã hóa về dạng thông tin ban đầu, quá trình ngƣợc của mã hóa.
Một hệ thống mã hóa bao gồm các thành phần:
Quá trình mã hóa đƣợc tiến hành bằng cách áp dụng hàm toán học E lên thông tin P, vốn đƣợc
biểu diễn dƣới dạng số, để trở thành thông tin đã mã hóa C. Quá trình giải mã đƣợc tiến hành
ngƣợc lại: áp dụng hàm D lên thông tin C để đƣợc thông tin đã giải mã P. Trong lúc học môn
này ở trƣờng đại học, Nam nghĩ ra phƣơng pháp mã hóa mới nhƣ sau :
0. Mã hóa văn bản gồm n kí tự la tinh[A-Z], khoảng trắng, dấu chấm, dấy phẩy, dấu hai chấm,
dấu chấm phẩy, dấu nháy kép.
1. Mỗi kí tự của văn bản đƣợc biểu diễn dƣới dạng thập phân nhƣ sau:
<khoảng trắng>=0, A=1, B=2, C=3, ..., Y=25, Z=26, <dấu chấm>=27, <dấu phẩy>=28,
<dấu hai chấm>=29, <dấu chấm phẩy>=30, <dấu nháy kép>=31.
2. Mỗi số dạng thập phân lại đƣợc biểu diễn một nhóm 5 số ở dạng nhị phân ,ví dụ :
A=1=00001, C=3=00011, M=13=01101.
3. Dãy số nhị phân nhận đƣợc do các số kết hợp với nhau đƣợc viết lại vào mảng hai chiều
kích thƣớc 5xn theo chiều từ trên xuống dƣới và từ trái sang phải, bắt đầu từ góc trên trái
(nhƣ hình bên dƣới). Ví dụ : Văn bản ACM sẽ biểu diễn thành dãy 000010001101101 với
độ dài 15 và đƣợc điền vào mảng hai chiều 5x3 nhƣ sau:
0 0 0
0 0 1
0 0 1
0 1 0
1 1 1
5. Từ các bít của mảng ta viết theo từng dòng từ trái sang phải, từ trên xuống dƣới, bắt đầu từ
góc trên trái, ta sẽ đƣợc dãy số nhị phân mới. Ví dụ trên sẽ có dãy nhị phân mới nhƣ sau
000001001010111. Sau đó ta nhóm dãy nhị phân mới nhận đƣợc thành từng nhóm 5 bit,
bắt đầu từ trái sang phải của dãy nhị phân. Với mỗi nhóm 5 bit ở hệ đếm nhị phân ta
chuyển về hệ đếm thập phân và xem chúng tƣơng ứng với kí tự nào ở mục 1 thì lần lƣợt
viết ra theo thứ tự của nhóm 5 bit trong dãy. Chuỗi kí tự nhận đƣợc chính là đoạn mã hóa.
Ví dụ trên sẽ có đoạn mã hóa nhƣ sau:
000002=010=<khoảng trắng>, 100102=1810=R, 101112=2310=W.
Dữ liệu: vào từ tập tin văn bản CODE.INP gồm một dòng chứa văn bản gồm các kí tự la tinh,
khoảng trắng, dấu chấm, dấy phẩy, dấu hai chấm, dấu chấm phẩy, dấu nháy kép. Văn bản dài
không quá 104 kí tự.
Kết quả: ghi ra tập tin văn bản CODE.OUT ghi chuỗi kí tự nhận đƣợc từ kết quả mã hóa.
CODE.INP CODE.OUT
ACM RW
CÁC ĐỒNG XU
Steve ngồi bên cửa sổ rất lâu quan sát lũ quạ. Chúng là loài chim thông minh, rất thích các vật
lóng lánh và hay tha những thứ này về tổ. Hôm nay, không biết kiếm đƣợc ở đâu, chúng tha về
các đồng xu. Có tất cả n con quạ. Con quạ thứ i đã mang về ai đồng xu. Nhìn vào vị trí của tổ
trên cành Steve hiểu rằng nếu có bi thì tổ của quạ thứ i sẽ bị lật, rơi xuống đất và Steve sẽ nhặt
đƣợc hết xu trong tổ. Steve đang có trong túi m đồng xu và có tài ném đâu trúng đó. Bây giờ
chính là lúc cái tài lẻ này phát huy tác dụng.
Yêu cầu: Hãy xác định số tiền tối đa mà Steve sẽ có đƣợc.
Dữ liệu: Vào từ file văn bản COINS.INP:
Dòng đầu tiên chứa 2 số nguyên n và m (1 ≤ n ≤ 1 000, 0 ≤ m ≤ 1 000),
Dòng thứ 2 chứa n số a1, a2, . . ., an (0 ≤ ai ≤ 1 000, i = 1 ÷ n),
Dòng thứ 3 chứa n số b1, b2, . . ., bn (ai < bi ≤ 1 000, i = 1 ÷ n).
Kết quả: Đƣa ra file văn bản COINS.OUT một số nguyên – số tiền tối đa mà Steve sẽ có.
Ví dụ:
COINS.INP COINS.OUT
23 6
12
46
Trong chƣơng trình Chính phủ điện tử một cơ quan đƣợc trang bị một số khối hệ thống và cũng
chừng ấy màn hình. Nhƣng khi dự thảo hợp đồng, không có ai để ý đến việc màn hình có thể có
giao diện VGA hoặc DVI, các khối hệ thống có thể làm việc với loại giao diện này hay giao diện
khác hoặc cả hai.
Công ty giao hàng cũng không thật thiện ý. Họ chuyển tới a1 khối hệ thống chỉ hỗ trợ giao diện
VGA, a2 khối – hỗ trợ giao diện DVI và a3 khối – hỗ trợ đồng thời cả hai loại giao diện trên. Với
màn hình, tình hình cũng tƣơng tự: có b1 màn hình lắp card VGA, b2 màn hình lắp card DVI và
b3 màn hình làm việc đƣợc với cả 2 loại giao diện. Dĩ nhiên a1 + a2 + a3 = b1 + b2 + b3.
Một máy tính có thể lắp ráp đƣợc khi khối hệ thống hỗ trợ giao diện tƣơng ứng của màn hình.
Yêu cầu: Xác định số máy tính có thể lắp ráp đƣợc.
Ví dụ:
COMPUTER.INP COMPUTER.OUT
346 12
2 11 0
Máy điều hòa có công suất lớn nên nếu đặt chế độ hợp lý thì chỉ cần một giờ là nhiệt độ đã đạt
đến mức cần thiết.
Yêu cầu: Cho nhiệt độ trong phòng tr, nhiệt độ chọn trên điều khiển td, chế độ làm việc s – xâu
chỉ chứa các ký tự la tinh thƣờng. Hãy xác định nhiệt độ của phòng sau một tiếng đồng hồ.
Dữ liệu: Vào từ file văn bản COND.INP:
Dòng đầu tiên chứa 2 số nguyên tr và td (-50 ≤ tr, td ≤ 50),
Dòng thứ 2 chứa xâu s.
Kết quả: Đƣa ra file văn bản COND.OUT một số nguyên – nhiệt độ của phòng sau một tiếng
đồng hồ.
Ví dụ:
COND.INP COND.OUT
10 20 10
freeze
Kết quả: ghi ra tập tin văn bản CONNECT.OUT gồm nhiều dòng, mỗi dòng liệt kê các đỉnh
thuộc một thành phần liên thông.
ụ:
CONNECT.INP CONNECT.OUT
12 10 145 1 2 3
14 2367
23 8 9 10 11 12 4 5 6 7
36
8
45
67 9 10
89
8 10 11 12
9 11
11 8
11 12
BAO LỒI
Cho n điểm có độ nguyên trên mặt phẳng. Điểm thứ i có tọa độ (xi, yi) (i = 1 ÷ n, |xi|, |yi| ≤ 109, 3
≤ n ≤ 105), không có điểm nào trùng nhau và có ít nhất 3 điểm không thẳng hàng.
Ngƣời ta xây dựng bao lồi đối với các điểm đã cho, có nghĩa là xác định đa giác lồi diện tích nhỏ
nhất chứa các điểm đã cho.
Yêu cầu: Hãy xác định số điểm có tọa độ nguyên nằm hoàn toàn trong bao lồi (tức là không tính
các điểm trên biên).
BỎNG NẾP
Công ty bánh kẹo IOI chuyên sản xuất bánh Chà lam, làm từ bỏng nếp, mật mía và nƣớc gừng.
Gạo nếp đƣợc rang thành bỏng theo kiểu truyền thống, dùng than củi. Tuy quy trình rang là
truyền thống, nhƣng quá trình rang đã đƣợc tự động hóa.
Máy rang có R×C hộp dẹt, lắp thành R hàng, mỗi hàng có C hộp đựng gạo nếp. Định kỳ, tất cả
các hộp đƣợc trở mặt để tiếp cận với lửa than bên dƣới. Trong một ca sản xuất, động đất xẩy ra.
Một số hộp bị lật mặt. Thiết bị lập tức chuyển sang chế độ điều khiển bằng tay. Ở mỗi hàng và
mỗi cột có một cần gạt. Mỗi lần kéo cần tất cả các hộp
trong hàng (hoặc cột) bị lật mặt. Ở hình bên, các mặt trên
của hộp là xanh. Sau động đất, một số hộp lật mặt đỏ lên.
Bằng các thao tác kéo cần nhƣ trên hình vẽ thì chỉ còn một
hộp không lật đƣợc đúng mặt. Bỏng ở trong đó sẽ không đủ
tiêu chuẩn để sản xuất bánh.
Yêu cầu: Cho R, C và ma trận R×C các phần tử {0, 1}. Số 1
ký hiệu hộp tƣơng ứng bị lật do động đất. Hãy xác định số
hộp tối đa cho sản phẩm đạt chất lƣợng nếu công nhân trực
thao tác chỉnh lý bằng tay tốt.
Dữ liệu: Vào từ file văn bản CRACKERS.INP:
Dòng đầu tiên chứa 2 số nguyên R và C (1 ≤ R ≤
10, 1 ≤ C ≤ 105),
Mỗi dòng trong R dòng sau chứa C số nguyên trong
tập {0, 1} mô tả một hàng của máy rang.
Kết quả: Đƣa ra file văn bản CRACKERS.OUT một số
nguyên – số hộp cho thành phẩm tốt.
Ví dụ:
CRACKERS.INP CRACKERS.OUT
2 5 9
0 1 0 1 0
1 0 0 0 1
VƯỢT SUỐI
Thanh niên trong làng có một trò chơi khá nguy hiểm – nhảy từ tảng đá này sang tảng đá khác để
vƣợt qua con suối ở đầu làng. Có thể vẽ một lƣới ô
vuông n dòng để mỗi ô có không quá một tảng đá. Từ
bờ xuất phát ngƣời chơi phải nhảy trên các tảng đá để
sang bờ bên kia. Có hai các nhảy: nhảy đơn và nhảy
cách. Nhảy đơn là bƣớc nhảy từ một tảng đá ở dòng i
sang tảng đá khác ở dòng i+1, nhảy cách là bƣớc
nhảy từ tảng đá dòng i sang tảng đá dòng i+2. Số
lƣợng bƣớc nhảy cách không đƣợc vƣợt quá m. Bờ
xuất phát và bờ đích có thể coi tƣơng ứng là hàng 0 và
hàng n+1.
Mỗi tảng đá có một độ trơn. Độ nguy hiểm của bƣớc
nhảy đƣợc tính theo công thức:
(Độ trơn của tảng đá hiện tại+Độ trơn của tảng đá
tới)×Độ rộng bước nhảy
Độ rộng bƣớc nhảy là giá trị tuyệt đối hiệu hai cột của tảng đá hiện tại và tảng đá tới. Độ nguy
hiểm của bƣớc nhảy từ bờ xuất và của bƣớc nhảy từ tảng đá tới bờ đích là bằng 0. Cách nhảy
nêu ở hình trên có độ nguy hiểm là (2+2)×1+(2+1)×1+(1+4)×2= 17.
Yêu cầu: Cho n, m, vị trí và độ trơn mỗi hòn đá. Hãy tính độ nguy hiểm nhỏ nhất để vƣợt suối.
Dữ liệu đảm bảo có đƣờng nhảy.
Dữ liệu: Vào từ file văn bản CROSS.INP:
n 1
Dòng đầu tiên chứa 2 số nguyên n và m (2 ≤ n ≤ 150, 0 ≤ m ≤ ),
2
Dòng thứa i trong n dòng sau chứa thông tin về các tảng đá trên dòng i: số nguyên ki –
số tảng đá và ki cặp số nguyên: số thứ nhất – cột chứa đá và số thứ 2 – độ trơn (1 ≤ ki ≤
10, cột và độ trơn – trong khoảng từ 1 đến 1000).
Kết quả: Đƣa ra file văn bản CROSS.OUT một số nguyên – độ nguy hiểm nhỏ nhất tìm đƣợc.
Ví dụ:
CROSS.INP CROSS.OUT
5 1 17
2 1 3 2 2
1 3 2
1 1 7
1 2 1
1 4 4
ĐƯỜNG THỦY
JOI là đất nƣớc có n hòn đảo, đánh số từ 1 đến n. Hệ thống giao thông đƣờng thủy của JOI hết
sức phát triển và ngƣời dân cũng thƣờng xuyên đi lại bằng tàu.
Bạn làm việc ở Trung tâm thông tin, có nhiệm vụ trả lời cho hành khách biết giá rẻ nhất khi
muốn đi từ đảo a tới đảo b. Khi có một hành trình trình mới xuất hiện, bạn cũng nhận đƣợc
thông tin hai đảo nối hành trình này và giá vé (hành trình là 2 chiều và giá vé nhƣ nhau với mỗi
chiều). Bạn phải thƣờng xuyên cập nhật thông tin để có câu trả lời chính xác.
Yêu cầu: Cho số nguyên n – số đảo, k – số dòng thông tin tới Trung tâm thông tin (1 ≤ n ≤ 100,
1 ≤ k ≤ 5000). Mỗi dòng thông tin có một trong 2 dạng:
0 a b – câu hỏi về giá vé của hành khách muốn đi từ đảo a tới đảo b,
1 c d e – thông báo có tuyến tàu mới giữa c và d, chi phí một chiều là e (c ≠ d, 1 ≤ e ≤
106).
Với mỗi câu hỏi – đƣa ra giá vé rẻ nhất hoặc số -1 nếu không có tàu.
Dữ liệu: Vào từ file văn bản CRUISE.INP:
Dòng đầu tiên chứa 2 số nguyên n và k,
Mỗi dòng trong k dòng sau chứa một dòng thông tin tới Trung tâm.
Kết quả: Đƣa ra file văn bản CRUISE.OUT với mỗi câu hỏi về giá vé đƣa ra một số nguyên trên
một dòng riêng.
Ví dụ:
CRUISE.INP CRUISE.OUT
3 8 -1
1 3 1 10 15
0 2 3 12
1 2 3 20
1 1 2 5
0 3 2
1 1 3 7
1 2 1 9
0 2 3
CẮT VẢI
Cậu bé giúp việc của họa sỹ nổi tiếng học đƣợc nhiều thứ trong quá trình phục vụ. Một hôm, cậu
cũng nổi máu họa sỹ và cũng muốn để lại một cái gì đó cho hậu thế. Họa sỹ làm việc vào đên,
còn ban ngày ngủ. Lợi dụng lúc họa sỹ ngủ, cậu bé mang
tấm vải nền hình vuông cho bức tranh tƣơng lai của họa
sỹ ra vẽ. Nhƣng tấm vải quá lớn, cậu cắt bớt chiều rộng
một dẻo chữ nhật độ rộng a. Phần còn lại của tấm vải nền
vẫn còn quá cao. Biết sức mình chỉ vẽ đƣợc trên diện tích
S, cậu tính toán và cắt bớt một phần độ cao b. Những tính
toán đó đƣợc ghi lại trên giấy. Sau khi có tấm nền ƣng ý,
cậu bỏ khá nhiều công sức để có một tác phẩm đáng để
treo trong viện bảo tàng nghệ thuật bất kỳ. Hài lòng với
thành quả dạtđƣợc, cậu bỏ ra phố chơi.
Khi họa sỹ tỉnh dậy, ông thấy ngay điều khủng khiếp gì đã xẩy ra. Là một ngƣời từng trải, ông đã
quá quen với mọi sự cố trong đời. Ông quyết định đi mua tấm vải nền mới giống tấm cũ. Dựa
vào số liệu để lại ông phải tính ra kích thƣớc của tấm nền. Điều đáng lo là ngoài cửa hiệu chỉ bán
các tấm nền kích thƣớc nguyên. Vả lại, số liệu mà cậu bé để lại cũng chắc gì đã chính xác!
Yêu cầu: Với các số liệu a, b, S, hãy xác định xem có đáng ra phố tìm mua tấm vải nền in hệt
nhƣ cũ hay không. Nếu có – đƣa ra kích thƣớc L của tấm vải, trong trƣờng hợp ngƣợc lại – đƣa
ra số -1.
Dữ liệu: Vào từ file văn bản CUT.INP gồm một dòng chứa 3 số nguyên a, b và S (0 ≤ a, b ≤
104, 1 ≤ S ≤ 108).
Kết quả: Đƣa ra file văn bản CUT.OUT một số nguyên – kết quả tìm đƣợc.
Ví dụ:
CUT.INP CUT.OUT
2 3 12 6
NGÀY THÁNG
Ban tổ chức cuộc thi Robotcon yêu cầu trên robot dự thi phải có màn hình báo ngày tháng theo
quy cách” DD.MM.YYYY”. Ví dụ, nếu hôm nay là ngày 2 tháng hai năm 2009 thì trên màn
hình phải hiện thông báo 02.02.2009
Các bạn trong đội thi đã lắp đặt đƣợc bộ phận báo ngày, nhƣng thiết bị hiển thị số chƣa thật hoàn
thiện, còn một vài chữ số chƣa bật đƣợc. Nhƣ vậy, một số ngày tháng sẽ không hiển thị đƣợc. Ví
dụ, nếu thiết bị điện tử mới biểu diễn đƣợc các chữ số 0, 2 và 9 thì có thể hiển thị đƣợc ngày
mồng 2 tháng 2 năm 2009, nhƣng không hiển thị đƣợc ngày mồng 3 tháng 2 năm 2009.
Khoảng thời gian dự kiến diễn ra cuộc thi đã đƣợc công bố. Mọi ngƣời muốn biết, với tình trạng
hiện nay, trong khoảng thời gian đó có bao nhiêu ngày robot hiển thị đƣợc đúng ngày tháng.
Yêu cầu: Cho biết số nguyên n – số chữ số hiển thị đƣợc và danh sách các chữ số này, biết ngày
đầu và cuối. Hãy xác định số ngày robot hiển thị đƣợc đúng (lƣu ý có thể có năm nhuận).
Dữ liệu: Vào từ file văn bản DATES.INP:
Dòng đầu tiên chứa số nguyên n 0 ≤ n ≤ 10),
Dòng thứ 2 chứa n chữ số hiển thị đƣợc, các chữ số cách nhau một dấu cách,
Hai dòng cuối chứa hai ngày tháng xác định ngày đầu và ngày cuối, năm không vƣợt quá
4 chữ số.
Kết quả: Đƣa ra file văn bản DATES.OUT một số nguyên – số ngày hiển thị đƣợc.
Ví dụ:
DATES.INP DATES.OUT
3 4
029
01.02.2009
28.02.2009
ĐƯỜNG ĐI DFS
Cho đồ thị có hƣớng gồm đỉnh và cung, và là hai đỉnh của . Một dãy các
đỉnh sao cho đƣợc gọi là một đƣờng đi
từ tới . Một đƣờng đi gọi là đơn giản (hay đường đi đơn) nếu tất cả đỉnh trên đƣờng đi là hoàn
toàn phân biệt.
Biết rằng tồn tại ít nhất một đƣờng đi từ tới , hãy chỉ ra đƣờng đi đơn có thứ tự từ điển nhỏ
nhất.
- Dòng 1 chứa số đỉnh , số cung , đỉnh xuất phát , đỉnh cần đến .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên dƣơng thể hiện có cung nối từ đỉnh tới
đỉnh trong đồ thị.
Kết quả: ghi ra tập tin văn bản DFS.OUT các đỉnh theo đúng thứ tự trên đƣờng đi tìm đƣợc, bắt
đầu từ đỉnh , kết thúc ở đỉnh
ụ:
DFS.INP DFS.OUT
8 12 1 8 123768 1
5
12 1
2
13 3
2 3
23
24 4
7
6
31 9 4 7 5
35 12
8 11
37
46 6 8
62 10
68
78
76
ƯỚC SỐ
Với mỗi số đã cho hãy xác định hãy xác định số lƣợng ƣớc số của nó.
Ví dụ với n = 3, a1 = 4, a2 = 12, số lƣợng ƣớc số của 4 là 3 (1, 2, 4), số lƣợng ƣớc số của 12 là 6
(1, 2, 3, 4, 6, 12).
Kết quả: Đƣa ra file văn bản DIVISOR.OUT n số nguyên trên n dòng, dòng thứ i chứa số lƣợng
ƣớc số của ai.
Ví dụ:
DIVISOR.INP DIVISOR.OUT
2 3
4 6
12
GIẢI MÃ SỐ
Giả sử các chữ số từ 1 đến 9 đƣợc mã hoá dƣới dạng một chuỗi chỉ gồm các ký tự a, b và c theo
quy tắc sau:
Chữ số 1 2 3 4 5 6 7 8 9
Mã
KHOẢNG CÁCH SỐ
Ngƣời ta định nghĩa khoảng cách giữa 2 số nguyên dƣơng là tổng độ lệch của các chữ số
cùng hàng tƣơng ứng trên và . Chẳng hạn với và thì tổng độ lệch là
.
Yêu cầu: Cho 2 số nguyên dƣơng . Hãy tính khoảng cách giữa và theo
định nghĩa trên.
Dữ liệu: vào từ tập tin văn bản DIST.INP chứa hai số nguyên dƣơng trên cùng dòng cách
nhau khoảng trắng.
Kết quả: ghi ra tập tin văn bản DIST.OUT giá trị khoảng cách giữa .
Ví dụ:
DIST.INP DIST.OUT
2015 48 8
Yêu cầu: Hãy giúp các bác sĩ kiểm tra xem cuối ngày hôm đó, có tối đa bao nhiêu ngƣời có thể sẽ nhiễm
bệnh và đó là những ngƣời nào để còn cách ly. Ngƣời có tiếp xúc với ngƣời nhiễm bệnh đƣợc coi là
ngƣời nhiễm bệnh.
- Dòng đầu tiên ghi 2 số tự nhiên tƣơng ứng là số lƣợng ngƣời làm việc
trong toà nhà và số hiệu của nhân viên đã nhiễm Ebola đầu tiên.
- Dòng thứ trong dòng tiếp theo ghi danh sách những ngƣời có tiếp xúc với ngƣời thứ theo cách
sau: số đầu tiên của dòng là tổng số nhân viên đã gặp ngƣời thứ , tiếp theo là số tự nhiên lần
lƣợt là số hiệu của các nhân viên đó. Nếu có nghĩa rằng không ai đã tiếp xúc với ngƣời thứ .
- Dữ liệu đƣợc cho đảm bảo tổng số lần tiếp xúc của tất cả nhân viên trong cơ quan không vƣợt quá
- Dòng đầu tiên ghi số là tổng số ngƣời có thể bị lây nhiễm Ebola
- Dòng thứ 2 liệt kê tất cả nhân viên có thể bị lây nhiễm Ebola cần cách ly, danh sách cần đƣợc sắp
theo thứ tự tăng dần của số hiệu nhân viên.
Ví dụ:
EBOLA.INP EBOLA.OUT
51 3
223 123
213
12
15
14
BẦU CỬ
Chính quyền đất nƣớc Metacity đang tổ chức lấy phiếu bầu cho ứng viên, đƣợc đánh thứ tự từ
1 đến . Megacity có thành phố và hệ thống bầu cử ở đất nƣớc này đƣợc chia thành 2 giai
đoạn khá lạ lùng nhƣ sau.
Giai đoạn đầu của đợt bầu cử, các lá phiếu chỉ tính cho từng thành phố, nghĩa là ứng viên đƣợc
cử tri của thành phố nào bỏ nhiều phiếu nhất sẽ chiến thắng tại thành phố đó. Nếu có nhiều ứng
viên cùng số phiếu cao nhất của cùng một thành phố thì ứng viên nào có thứ tự nhỏ hơn sẽ chiến
thắng.
Ở giai đoạn tiếp theo, ngƣời chiến thắng đƣợc xác định theo nguyên tắc nhƣ sau: ngƣời thắng cử
là ngƣời chiến thắng tại nhiều thành phố nhất. Nếu có nhiều ứng viên cùng thắng tại nhiều thành
phố nhất thì ứng viên có thứ tự nhỏ hơn sẽ thắng cử.
Yêu cầu: hãy xác định ứng viên thắng cử
Dữ liệu: vào từ tập tin văn bản ELECTION.INP
Kết quả: ghi ra tập tin văn bản ELECTION.OUT chỉ số của ứng viên thắng cử.
Ví dụ:
ELECTION.INP ELECTION.OUT
33 2
123
231
121
XÓA SỐ
Ngày chủ nhật, trời mƣa và lạnh. Trong phòng Harry cũng nhƣ Rôn không ai muốn ra khỏi chăn
ấm. Hai bạn quyết định giết thời gian bằng trò chơi xóa số. Harry tạo trên máy tính bảng của
mình một số có n chữ số không bắt đầu bằng 0, truyền số đó sang máy của Rôn và yêu cầu xóa k
chữ số tùy chọn để số nhận đƣợc sau khi xóa là lớn nhất. Sau khi xóa theo yêu cầu, Rôn truyền
lại số nhận đƣợc cho Harry.
Hãy xác định số mà Harry nhận đƣợc.
Dữ liệu: Vào từ file văn bản ERASENUM.INP:
Dòng đầu tiên chứa 2 số nguyên n và k (1 ≤ k < n ≤ 5×105),
Dòng thứ 2 chứa số nguyên n chứ số đƣợc Harry gửi.
Kết quả: Đƣa ra file văn bản ERASENUM.OUT số mà Harry nhận đƣợc.
ụ:
ERASENUM.INP ERASENUM.OUT
73 3234
1231234
EQUATION
Hãy giải phƣơng trình nghiệm nguyên dƣơng sau:
2 2 2 2
Yêu cầu cho là kích thƣớc khu đất, hãy tính tổng độ dài cần rào.
Hình minh họa khu đất với kích thƣớc và tổng độ dài cần rào là 17 (4 hàng rào dọc
độ dài 2; 3 hàng rào ngang độ dài 3).
Kết quả: ghi ra tập tin văn bản FENCES.OUT tổng độ dài cần rào.
ụ:
FENCES.INP FENCES.OUT
23 17
TÔ MÀU
XÂU FIBONACCI
Công thức lặp có thể gặp với cả biểu thức xâu. Biểu thức xâu Fibonacci đƣợc xác định bằng bằng
công thức lặp F0 = a, F1 = b, F2 = F0+F1, . . .Fn=Fn-2+Fn-1, . . . Các xâu đầu tiên xác định theo
công thức lặp này là a, b, ab, bab, abbab, bababbab, abbabbababbab, . . .
Độ dài của xâu tăng lên rất nhanh. Vì vậy ta chỉ xét bài toán xác định một ký tự của một xâu
trong dãy các xâu này.
Yêu cầu: Cho 2 số nguyên n và k. Hãy xác định ký tự thứ k của xâu Fn. Các ký tự trong Fn đƣợc
đánh số bắt đầu từ 1.
Dữ liệu: Vào từ file văn bản FIB1.INP:
Dòng đầu tiên chứa số nguyên T – số bộ dữ liệu test (1 ≤ T ≤ 100),
Mỗi dòng trong T dòng sau chứa 2 số nguyên n và k (0 ≤ n ≤ 45, 1 ≤ k ≤ length(Fn)).
Kết quả: Đƣa ra file văn bản FIB1.OUT, kết quả mỗi test đƣa ra trên một dòng dƣới dạng một ký
tự.
Ví dụ:
FIB1.INP FIB1.OUT
4 a
01 b
11 a
32 a
77
XÂU FIBONACCI 2
Xâu Fibonacci thƣờng đƣợc sử dụng để rèn luyện kỹ năng xử lý khi giới thiệu các giải thuật xử
lý xâu.
Xét dãy xâu F0, F1, F2, . . . xây dựng theo quy tắc sau:
F0 = „a‟,
F1 = „b‟,
Fn = Fn-2 + Fn-1, n >1.
Yêu cầu: Cho hai số nguyên n và k (0 ≤ n ≤ 45, k không vƣợt quá độ dài xâu Fn). Hãy xác định
số lƣợng ký tự a xuất hiện trong k ký tự đầu tiên của xâu Fn.
Dữ liệu: Vào từ file văn bản FIB2.INP:
Dòng đầu tiên chứa số nguyên T – số lƣợng tests cần xử lý (1 ≤ T ≤ 100),
Mỗi dòng trong T dòng sau chứa 2 số nguyên n và k.
Kết quả: Đƣa ra file văn bản FIB2.OUT, kết quả mỗi test đƣa ra trên một dòng dƣới dạng số
nguyên.
Ví dụ:
FIB2.INP FIB2.OUT
4 1
01 0
11 1
32 3
77
LỌC SỐ
Trò chơi truyền hình “Lọc số” thu hút đƣợc rất nhiều ngƣời tham gia vì họ có thể ngồi ở nhà,
dùng máy tính của mình hỗ trợ để chơi. Ngƣời điều khiển chƣơng trình chọn và mở một phong bì
trên bàn, thông báo hai số nguyên L và R ghi trong phong
bì (2 ≤ L ≤ R ≤ 109). Bảng chứa các số nguyên từ L đến R
với các ô màu xanh.
Bƣớc 1 ngƣời dẫn chƣơng trình đƣa ra số 2. Ngƣời chơi
phải gạch hết các số trong bảng chia hết cho 2. Các ô chứa
những số này sẽ trở thành màu đỏ. Những ai trả lời đúng
và nhanh nhất sẽ đƣợc chơi tiếp. Ở bƣớc thứ i ngƣời dẫn
chƣơng trình đƣa ra số i+1. Ngƣời chơi phải gạch tất các
số ở những ô xanh còn lại và chia hết cho i+1. Cũng có
thể ở một số bƣớc nào đó không có số nào bị gạch. Trò
chơi kết thúc khi không có ngƣời chơi nào trả lời đúng
hoặc khi tất cả các số đều bị gạch.
Điều chúng ta quan tâm là với L, R nhận đƣợc trò chơi sẽ
diễn ra tối đa là bao nhiêu bƣớc. Ví dụ, với L = 2, R = 10,
trò chơi sẽ diễn ra tối đa trong 6 bƣớc.
Yêu cầu: Cho 2 số nguyên L, R. Hãy xác định số bƣớc tối đa của trò chơi.
Dữ liệu: Vào từ file văn bản FILTR.INP gồm một dòng chứa 2 số nguyên L và R.
Kết quả: Đƣa ra file văn bản FILTR.OUT một số nguyên – số bƣớc tối đa của trò chơi.
Ví dụ:
FILTR.INP FILTR.OUT
2 10 6
Ví dụ:
FISHER.INP FISHER.OUT
320 50
15
23
45
2 2 10
365
2 1 100 9400
65
100 4
5 100 2000
3 3 10 2441
11
10 100
20 10
2 1000 1
11 50 50
17 50 2
TẶNG HOA
Nhân ngày phụ nữ Việt Nam 20/10, Hoàng muốn mua một bó hoa thật đẹp có giá trị trong phạm
vi số tiền mình có là đồng để tặng bạn gái. Vì bạn gái chỉ thích hoa lan và hoa hồng nên Hoàng
chỉ tìm mua 2 loại hoa này. Hoa hồng có giá đồng một bông, hoa lan có giá đồng một bông
. Hoàng muốn mua đƣợc càng nhiều hoa càng tốt và giá trị của bó hoa phải là lớn nhất
(dĩ nhiên, không vƣợt quá số tiền mình hiện có).
Yêu cầu: cho 3 số nguyên . Hãy xác định giá trị của bó
hoa mua đƣợc.
Dữ liệu: vào từ tập tin văn bản FLOWERS.INP 3 số nguyên .
Kết quả: ghi ra tập tin văn bản FLOWERS.OUT giá trị lớn nhất của bó hoa mua đƣợc.
Ví dụ:
FLOWERS.INP FLOWERS.OUT
2 3 11 11
Tí là ngƣời tham lam nên muốn phục vụ cho tất cả khách hàng. Hãy giúp Tí tính số quầy phục
vụ tối thiểu để phục vụ cho tất cả khách.
Kết quả: ghi ra tập tin văn bản FREECASH.OUT số quầy tối thiểu để phục vụ cho tất cả khách
hàng.
Ví dụ:
FREECASH.INP FREECASH.OUT
4 2
80
8 10
8 10
8 45
Kết quả: xuất ra tập tin văn bản FRIDAY.OUT số ngày rơi vào thứ sáy ngày 13 trong năm.
ụ:
FRIDAY.INP FRIDAY.OUT
12 2
1
ẾCH
Trong đầm lầy nơi chú ếch loại N sống hoa súng mọc thành một dãy dài, các cụm hoa súng đƣợc
đánh số từ 1 trở đi từ trái sang phải. Ban đầu chú ếch thuộc loại N và chú đang ngồi trên lá ở cụm
hoa thứ K (1 ≤ N < K ≤ 2×109). Chú ếch sẽ nhảy sang trái với bƣớc nhảy là N cụm, tức là từ cụm
K sang cụm K – N, rồi sang cụm K – 2N, K – 3N, . . . cho đến khi tới cụm M ≤ N. Nếu M = N thì
chú ếch sẽ cảm thấy rất thoải mái và không nhảy đi đâu cả.
Nếu M < N thì ếch sẽ nhảy sang phải một bƣớc N, trở thành loại M và lại nhảy sang trái với các
bƣớc là M. Chú ếch sẽ tìm thấy cụm thoải mái hay trở thành loại L và lại nhảy tiếp.
Yêu cầu: Cho N và K. Hãy xác định xem chú ếch có tới đƣợc cụm thấy thoải mái hay không và
nếu có – đó là cụm nào.
Dữ liệu: Vào từ file văn bản FROG.INP:
Dòng thứ nhất chứa số nguyên N,
Dòng thứ 2 chứa số nguyên K.
Kết quả: Đƣa ra file văn bản FROG.OUT một số nguyên – số của cụm hoa nơi chú ếch ở lại hoặc
số 0 nếu chú ếch không tìm đƣợc nơi thoải mái.
Ví dụ:
FROG.INP FROG.OUT
2 2
10
Ví dụ, có 8 đống rác với độ cao tƣơng ứng từ trái sang phải là 3, 1, 4, 5, 6, 2, 3 và 8. Số bƣớc
nhảy mỗi chú ếch có thể thực hiện là 1, 2, 1, 3, 4, 2, 1, 2. Sau khi di chuyển hết khả năng của
mình, chú ếch ở đống rác 0 sẽ tới đƣợc đống rác 2 với độ cao là 4, còn chú ếch ở đống rác 3 – tới
đƣợc bải rác thành phố (độ cao -1).
Yêu cầu: Hãy xác định độ cao nơi ở mới của mỗi chú ếch.
Dữ liệu: Vào từ file văn bản FROGS.INP:
Dòng đầu tiên chứa số nguyên n,
Dòng thứ 2 chứa n số nguyên h0, h1, …, hn-1,
Dòng thứ 3 chứa n số nguyên J0, J1, …, Jn-1.
Kết quả: Đƣa ra file văn bản FROGS.OUT một dòng chứa n số nguyên – độ cao nơi ở mới của
mỗi chú ếch.
Ví dụ:
FROGS.INP FROGS.OUT
8 4 5 5 -1 -1 8 8 -1
3 1 4 5 6 2 3 8
1 2 1 3 4 2 1 2
HÀM SỐ
Cho số nguyên dƣơng , hàm số đƣợc định nghĩa nhƣ sau:
GEN VI KHUẨN
Viện Di truyền học nghiên cứu chế tạo vacin. Họ đã giải mã đƣợc gen của vi khuẩn. Nhƣng nhƣ
vậy vẫn chƣa đủ. Còn phải tìm hiểu các biến dạng của nó, xác định các khác biệt để xử lý.
Các phân tử DNK có thể biểu diễn dƣới dạng chuỗi các ký tự A, C, G và T, tạo thành các gen
tuyến tính. Mức độ họ hàng gần gũi của vi khuẩn đƣợc xác định dựa vào mức độ giống nhau của
các gen tuyến tính, tức là bằng số ký tự giống nhau ở các vị trí tƣơng ứng.
Các nhà bác học phát hiện ra rằng gien
của vi khuẩn có tính chất nối vòng, tức là
nếu S = s1s2…sn là gen tuyến tính của
vi khuẩn thì các gen S1=S, S2 =
s2s3…sns1, . . ., Sn = sns1…sn-1 cũng
là gen của vi khuẩn này. Ngƣời ta đã
chứng minh đƣợc rằng độ giống nhau của
hai vi khuẩn có các gen vòng tƣơng ứng
là A và B sẽ là độ giống nhau cực đại của
các gen tuyến tính Ax và By sinh ra từ A
và B.
Ở gen nối vòng hình bên ta có thể tách ra
các gen tuyến tính A1 và B10 với độ giống
nhau 9. Đó cũng là độ giống nhau của 2
vi khuẩn này.
Yêu cầu: Cho 2 gen A và B độ dài n (2 ≤ n ≤ 100). Hãy xác định mức độ giống nhau của hai vi
khuẩn.
Dữ liệu: Vào từ file văn bản GEN.INP:
Dòng đầu tiên chứa số nguyên n,
Dòng thứ 2 chứa xâu xác định gen A,
Dòng thứ 3 chứa xâu xác định gen B.
Kết quả: Đƣa ra file văn bản GEN.OUT một số nguyên – độ giống nhau của 2 vi khuẩn.
Ví dụ:
GEN.INP GEN.OUT
12 9
ATGATACGCAGT
ATGCGTAGTATA
QUÀ TẶNG
Trong buổi tiệc chia tay cuối năm, các bạn học sinh đã mang theo món quà để tặng
cho nhau (buổi tiệc có học sinh tham dự, mỗi học sinh chỉ mang một món quà).
Để tạo tính bất ngờ thú vị cho các học sinh tham dự, giáo viên chủ nhiệm tập họp các món quà
lại và đánh số thứ tự các hộp quà từ 1 đến tƣơng ứng với số thứ tự của chủ nhân hộp quà. Tiếp
theo, cô tạo lá thăm, trên mỗi lá thăm ghi một con số từ 1 đến . Các học sinh sẽ lần lƣợt bốc
ngẫu nhiên 1 lá thăm và sẽ nhận món quà có số thứ tự tƣơng ứng với con số đƣợc ghi trên lá
thăm mà học sinh bốc trúng.
Các học sinh tham dự rất háo hức để xem món quà mình sắp nhận là gì nhƣng cũng rất muốn biết
ai sẽ là ngƣời nhận đƣợc món quà mà mình đã chuẩn bị từ nhiều ngày trƣớc đó.
Kết quả: xuất ra tập tin văn bản GIFTS.OUT gồm dòng, dòng thứ ghi số thứ tự của học sinh
nhận đƣợc quà của học sinh thứ .
ụ:
GIFTS.INP GIFTS.OUT
4 4
2 1
3 2
4 3
1
SẾU
Lần đầu tiên đƣợc đi tới vƣờn bách thú Jimmy thích nhất các con sếu vì nhiều con trong số
chúng đứng một chân trông rất ngộ nghĩnh, khi đó chân kia không thấy đâu nhƣ vốn sinh ra
chúng đã chỉ có một chân. Jimmy đếm đƣợc tất cả có a chân.
Sau khi đi xem các con thú khác Jimmy lại quay về chổ chuồng sếu. Một số con đã thay đổi vị trí
và cách đứng, Jimmy đếm lại một lần nữa và có số chân là b.
Qua số chân thì không thể xác định chính xác có tất cả bao nhiêu con sếu trong chuồng nhƣng
Gimmy vẫn muốn biết có ít nhất và nhiều nhất là bao nhiêu con.
Hãy xác định số lƣợng sếu tối thiểu và tối đa.
Dữ liệu: Vào từ file văn bản HERONS.INP gồm một dòng chứa 2 số nguyên a và b (1 ≤ a, b ≤
109).
Kết quả: Đƣa ra file văn bản HERONS.OUT trên một dòng 2 số nguyên xác định số lƣợng sếu
tối thiểu và tối đa.
Ví dụ:
Kết quả: Đƣa ra file văn bản HOMEWORK.OUT một số nguyên – thời gian tối thiểu tìm đƣợc.
Ví dụ:
HOMEWORK.INP HOMEWORK.OUT
55 11
12345
12
53
13
34
24
SỐ NGUYÊN TỐ
Cho hai số nguyên dƣơng và , hãy liệt kê tất cả các số nguyên tố trong phạm vi từ 1 tới có
tổng các chữ số bằng .
Dữ liệu: vào từ tập tin văn bản HPRIME.INP dòng chứa hai số nguyên dƣơng
- Dòng 1 ghi số là số những số nguyên tố trong phạm vi từ 1 tới có tổng các chữ số bằng
- dòng tiếp theo, mỗi dòng ghi một số nguyên tố thỏa mãn yêu cầu đề ra, các số nguyên tố
phải đƣợc liệt kê theo thứ tự tăng dần.
Ví dụ:
HPRIME.INP HPRIME.OUT
500 16 7
79
97
277
349
367
439
457
THẦN TƯỢNG
Có ngƣời nổi tiếng đánh số từ 1 tới . Ngƣời thứ coi ngƣời khác làm “thần tƣợng” của
mình. Chú ý mối quan hệ “thần tƣợng” không phải quan hệ đối xứng, tức là có thể ngƣời coi
ngƣời làm thần tƣợng nhƣng ngƣời không phải thần tƣợng của ngƣời .
Yêu cầu: Liệt kê những ngƣời là thần tƣợng của nhiều ngƣời khác nhất.
Dữ liệu: vào từ tập tin văn bản IDOLS.INP
Kết quả: ghi ra tập tin văn bản IDOLS.OUT chỉ số của những ngƣời đƣợc nhiều ngƣời khác coi
là thần tƣợng nhất. Các chỉ số tìm đƣợc cần ghi trên một dòng theo thứ tự tăng dần.
Ràng buộc: ; ; Không ngƣời nào tự nhận mình làm thần tƣợng.
ụ:
IDOLS.INP IDOLS.OUT
5 24
224
3514
225
11
224
BA LÔ DU LỊCH
Ba lô du lịch mới của Steve đƣợc làm từ cao su siêu bền. Ba lô mới mang lại cho Steve những
khả năng mới và cả những vấn đề mới.
Ba lô có dung lƣợng V0 cm3 (0 ≤ V0 ≤ 109). Nếu đồ đạc mang
theo có thể tích không quá V0 thì không có vấn đề gì xẩy ra.
Nhƣng vì ba lô làm bằng cao su nên còn có thể nhét thêm nhiều
thứ nữa, khi đó màng cao su sẽ căng và ép lên đồ vật bên trong.
Nếu thể tích sử dụng là V > V0 thì các đồ vật trong ba lô sẽ phải
chịu một áp lực P = V – V0.
Steve có n đồ vật có thể phải mang theo khi du lịch (1 ≤ n ≤ 100).
Đồ vật thứ i có thể tích vi, giá trị là ci và chịu đƣợc áp lực
không quá pi.
Yêu cầu: Hãy xác định các đồ vật cần mang theo để tổng giá trị
mang đi là lớn nhất.
Dữ liệu: Vào từ file văn bản KNAPSACK.INP:
Dòng đầu tiên chứa 2 số nguyên n và V0,
Dòng thứ i trong n dòng tiếp theo chứa 3 số nguyên ci,
vi và pi.
Kết quả: Đƣa ra file văn bản KNAPSACK.OUT:
Dòng đầu tiên chứa 2 số nguyên – số lƣợng đồ mang theo và tổng giá trị của chúng,
Dòng thứ hai chứa các số nguyên chỉ ra một cách xác định các đồ cần mang theo.
Ví dụ:
KNAPSACK.INP KNAPSACK.OUT
3 10 2 2
3 1 1 2 3
4 1 2
5 1 3
TÁO QUÂN
Có ông táo vào bà táo đƣợc Ngọc Hoàng phân công nhiệm vụ trong năm mới. Đầu tiên
Ngọc Hoàng chọn táo (ông hoặc bà) làm những nhiệm vụ đặc biệt tại các Bộ/Ngành, sau đó
Ngọc Hoàng sẽ chọn ra các nhóm, mỗi nhóm gồm đúng 2 ông táo và 1 bà táo để phân xuống các
gia đình dƣới hạ giới.
Yêu cầu: Hãy giúp Ngọc Hoàng xác định số nhóm nhiều nhất để phân xuống các gia đình dƣới
hạ giới. Ví dụ có ông táo và bà táo, có táo phải làm nhiệm vụ đặc biệt. Ngọc
Hoàng có thể chọn 4 ông táo và 2 bà táo làm nhiệm vụ đặc biệt, còn lại chia làm 4 nhóm (1 bà
táo không đƣợc phân việc). Cách khác là chọn 3 ông táo và 3 bà táo làm nhiệm vụ đặc biệt, còn
lại chia làm 4 nhóm (1 ông táo không đƣợc phân việc).
Dữ liệu: vào từ tập tin văn bản LARES.INP gồm 1 dòng chứa 3 số nguyên dƣơng
cách nhau ít nhất một dấu cách
Kết quả: ghi ra tập tin văn bản LARES.OUT một số nguyên duy nhất là số nhóm nhiều nhất
chọn đƣợc để phân xuống các gia đình dƣới hạ giới.
ụ:
LARES.INP LARES.OUT
12 7 5 4
Nhƣ vậy, để hiển thị số 0 cần 6 vạch đen, số 1 cần 2 vạch đen, … Là ngƣời ham hiểu biết, Mai tự
hỏi không biết số gồm chữ số có nghĩa nào nhỏ nhất và lớn nhất có thể hiển thị với đúng
vạch đen trên màn hình.
Yêu cầu: cho và . Hãy xác định số gồm chữ số có nghĩa nhỏ
nhất và lớn nhất, mỗi số đƣợc hiển thị với đúng vạch đen trên màn hình.
ụ:
LED.INP LED.OUT
5 15 10117
97111
NGÔN NGỮ
Steve học ngoại ngữ. Bài tập hôm nay là học thuộc tên các chữ số (ở hệ cơ số 10). Để rèn luyện
kỹ năng phản xạ nhanh, Steve viết một dãy n số nguyên dƣơng a1, a2, . . ., an, mỗi số không
vƣợt quá 109 và không có các số 0 không có nghĩa ở đầu (1 ≤ n ≤ 1000). Với mỗi số Steve sẽ đọc
chữ số có tên lớn nhất (theo thứ tự từ điển) trong số các tên xuất hiện trong số này.
Ví dụ, Steve học tiếng Pháp. Tên các chữ số trong tiếng Pháp là nhƣ sau:
0 1 2 3 4 5 6 7 8 9
zero un deux trois quatre cinq six sept huit neuf
Với số 908, chữ số mà Steve đọc là zero.
Yêu cầu: Cho dãy 10 tên các chữ số từ 0 đến 9, số nguyên n và n số nguyên a1, a2, . . ., an. Với
mỗi số nguyên hãy nêu tên chữ số đƣợc đọc.
Dữ liệu: Vào từ file văn bản LINGVO.INP:
Dòng đầu tiên chứa 10 xâu, xâu thứ i là tên chữ số i, i = 0 ÷ 9, mỗi xâu không quá 50
ký tự, các xâu cách nhau một dấu cách,
Dòng thứ 2 chứa số nguyên n,
Dòng thứ i trong n dòng tiếp theo chứa số nguyên ai.
Kết quả: Đƣa ra file văn bản LINGVO.OUT n tên các chữ số đƣợc đọc, mỗi tên đƣa ra trên một
dòng, dòng thứ i xác định tên đọc trong số ai.
Ví dụ:
LINGVO.INP LINGVO.OUT
zero un deux trois quatre cinq six sept huit neuf un
3 six
123 zero
456
908
KHÓA SỐ
Khóa số có n vòng số xoay độc lập với nhau. Mỗi vòng có k vị trí, mỗi vị trí khắc một số nguyên
trong phạm vi từ 1 đến k, các vị trí khác nhau có số khác nhau. Để mở đƣợc khóa ngƣời ta phải
xoay các vòng số về vị trí, sao cho trên cửa sổ đọc, tổng của 3 số liên tiếp bất kỳ phải bằng k.
Trƣớc khi đƣa khóa về trạng thái sử dụng, ngƣời dùng phải chọn hai vòng số p1 và p2 nào đó tùy
chọn, xác lập giá trị hiển thị cố định cho hai vòng này tƣơng ứng là v1 và v2 (p1 ≠ p2, 1 ≤ p1, p2
≤ n, 1 ≤ v1, v2 ≤ k). Tùy theo cách chọn v1 và v2 có thể có nhiều bộ giá trị mở khóa hoặc không
có cách nào (khóa chết – chỉ có thể mở bằng cách phá khóa).
Ví dụ, với n = k = 4, p1 = 1, p2 = 4 và v1 = v2 = 1 ta có hai bộ giá trị để mở khóa, đó là (1, 2, 1,
1) và (1, 1, 2, 1).
Yêu cầu: Cho n, k, p1, v1, p2 và v2. Hãy xác định số bộ giá trị mở khóa. Với khóa chết, số bộ
giá trị mở là 0.
Dữ liệu: Vào từ file văn bản LOCK.INP gồm một dòng chứa 5 số nguyên n, k, p1, v1, p2 và v2
(3 ≤ n ≤ 105, 3 ≤ k ≤ 105).
Kết quả: Đƣa ra file văn bản LOCK.OUT một số nguyên – số bộ giá trị mở khóa.
Ví dụ:
LOCK.INP LOCK.OUT
4 4 1 1 4 1 2
Ngƣời dân sống ở thành phố Cyberland tin rằng số 8 là một con số may mắn và một số nguyên
đƣợc gọi là may mắn nếu nó có chứa ít nhất một chữ số 8. Chẳng hạn số 18, 380, -808 là các số
may mắn.
Bờm là một du khách lần đầu đến Cyberland và cậu ta muốn viếng thăm Giga để tìm kiếm sự
may mắn. Hiện tại Bờm đang đứng ở tầng thứ của tòa tháp và cậu ta muốn tìm số nguyên
dƣơng nhỏ nhất sao cho khi lên cao thêm tầng tính từ tầng thì cậu ta sẽ đến đƣợc tầng có số
thứ tự là một số may mắn.
Kết quả: ghi ra tập tin văn bản LUCKY.OUT số nguyên dƣơng nhỏ nhất tìm đƣợc
Ví dụ:
LUCKY.INP LUCKY.OUT
179 1
LUCKY.INP LUCKY.OUT
18 10
Mike đặt các thanh nam châm thành một hàng ngang trên bàn. Mỗi lần anh ta thêm một thỏi nam
châm vào cuối phải dãy. Tùy vào cách anh ta bố trí các thanh nam châm chúng sẽ hút nhau tạo
thành một nhóm hàng ngang hoặc đẩy nhau tách biệt thành nhóm khác.
Yêu cầu: với cách sắp đặt các thanh nam châm thành một hàng ngang nhƣ trên, hãy xác định số
nhóm nam châm đƣợc hình thành.
Dữ liệu: đọc từ tập tin văn bản MAGNETS.INP gồm nhiều dòng
Kết quả: ghi ra tập tin văn bản MAGNETS.OUT gồm 1 số nguyên là số nhóm nam châm đƣợc
hình thành
ụ:
MAGNETS.INP MAGNETS.OUT
6 3
10
10
10
01
10
10
Kết quả: ghi ra tập tin văn bản MAXFREQ.OUT số nguyên là giá trị xuất hiện nhiều nhất trong
dãy, nếu có nhiều giá trị thỏa điều kiện thì xuất giá trị nhỏ nhất.
ụ:
MAXFREQ.INP MAXFREQ.OUT
10 3
5
3
2
5
5
3
4
6
8
3
Khủng hoảng tài chính thế giới nhƣ một cơn bão nhiệt đới, để lại đằng
sau đƣờng đi của mình những khung cảnh tiêu điều trên các nền kinh
tế thế giới, không loại trừ một nƣớc nào, kể cả ở xứ sở huyền diệu của
Buratino. Để có thêm thu nhập, Buratino quyết định đi trồng dƣa hấu ở
cánh đồng kỳ diệu nổi tiếng. Nhờ sự nỗ lực đặc biệt của Buratino (mà
cũng có thể là do tính kỳ diệu của cánh đồng) dƣa hấu luôn phát triển
với một tốc độ không đổi, tuy mỗi quả có một tốc độ riêng. Dƣa hấu ở cánh đồng kỳ diệu trở nên
nổi tiếng và rất hấp dẫn đối khách du lịch.
Nhận thấy khách du lịch rất thích chụp ảnh với dƣa hấu của cánh
đồng, Buratino đã tổ chức cung cấp một dịch vụ mới cho khách du
lịch VIP – chụp ảnh với quả dƣa hấu nặng nhất.
Buratino cân các quả dƣa hấu, theo dõi một số ngày và nhận thấy
rằng, nếu trọng lƣợng ban đầu là w0, thì sau k ngày dƣa hấu sẽ có
trọng lƣợng w = w0+s×k, trong đó s – tốc độ phát triển của quả dƣa
này (1 ≤ w0, s ≤ 109). Trên cánh đồng có n quả dƣa hấu, đánh số từ 1 đến n (1 ≤ n ≤ 105).
Buratino ghi lại trọng lƣợng ban đầu và tốc độ phát triển của từng quả. Nhƣng vốn không mạnh
về toán học, Buratino rất lúng túng khi cần tìm quả dƣa nặng nhất ở một ngày k nào đó (1 ≤ k ≤
109).
Yêu cầu: Cho n, k và n cặp số (w0, s). Hãy tìm ra quả dƣa hấu nặng nhất ở ngày thứ k. Nếu có
nhiều quả cùng nặng nhất thì chỉ ra quả có số nhỏ nhất.
Dữ liệu: Vào từ file văn bản MELONS.INP:
Dòng đầu tiên chứa số nguyên n,
Dòng thứ i trong n dòng sau chứa hai số nguyên w0 và s đối với quả dƣa thứ i,
Dòng n+2 chứa số nguyên m – số ngày cần tìm dƣa nặng nhất (1 ≤ m ≤ 105),
Mỗi dòng trong m dòng sau chứa một số nguyên k.
Kết quả: Đƣa ra file văn bản MELONS.OUT m số nguyên, mỗi số trên một dòng, xác định số thứ
tự của quả dƣa nặng nhất ứng với ngày tƣơng ứng cần tìm.
Ví dụ:
MELONS.INP MELONS.OUT
3 3
1 4 1
8 3 2
4 1
3
1
3
2
HỖN HỢP
Harry Potter đƣợc giao 3 bình dung dịch cùng thể tích và đều chứa đầy. Dung dịch trong mỗi
bình là hỗn hợp của 3 chất A, B và C. Trong bình thứ tỷ lệ các chất A, B và C là
. Ví dụ, mỗi bình có thể tích 12 lít và bình thứ nhất chứa 3 lít chất A, 6 lít
chất B và 3 lít chất C thì tỷ lệ các chất trong bình 1 là 1, 2, 1. Nhiệm vụ của Hary Potter là đổ
chung 3 bình này vào một thùng rỗng lớn và tính tỷ lệ các chất A, B, C trong thùng. Hãy lập
trình giúp Harry Poter tính tỷ lệ các chất trong thùng dựa theo tỷ lệ đã cho ở các bình.
Dữ liệu vào từ tập tin văn bản MIX.INP, gồm 3 dòng - dòng thứ i chứa 3 số nguyên dƣơng
, các số cách nhau một dấu cách.
Kết quả xuất ra tập tin văn bản MIX.OUT 3 số nguyên - tỷ lệ các chất A, B, C trong
thùng. Các số phải nguyên tố cùng nhau và cách nhau một dấu cách.
Ví dụ:
MIX.INP MIX.OUT
121 13 12 11
213
321
MODULO
Cho dãy số nguyên dƣơng . Hãy tìm số dƣ của phép chia từng phần tử của dãy
cho số nguyên dƣơng .
Dữ liệu vào từ tập tin văn bản MODULO.INP gồm nhiều dòng:
- Dòng đầu tiên chứa 2 số nguyên dƣơng
- Dòng thứ trong dòng tiếp theo chứa số nguyên dƣơng
Kết quả xuất ra tập tin văn bản MODULO.OUT gồm dòng. Dòng thứ chứa một số nguyên
dƣơng là giá trị của phép chia lấy phần dƣ cho
Ví dụ:
MODULO.INP MODULO.OUT
57 1
50 4
130 2
79 0
42 6
27
TIỀN
Hóa ra ai cũng cần tiền, kể cả phù thủy. Họ sử dụng các đồng vàng, bạc và đồng, gọi tƣơng ứng
là Galeon, Sikel và Knat. Một Galeon ăn 17 sikel, một sikel ăn 29 knat. Mọi giá cả nêu sau đều
theo các đơn vị kể trên. Trong mỗi giá số sikel không quá 16, số knat – không quá 28.
Trƣớc khi vào nhập học ở Hogvard Harry Potter rút ở ngân hàng Gringot một số tiền để mua một
số học cụ cần thiết nhƣ đãu thần, cú, chậu thiếc, áo choàng, . . . Số tiền Harry rút ra là g Galeo, s
Sikel và k Knat. Harry cần mua tất cả là n thứ. Vật thứ i có giá là (pi, qi, ri), i = 1 ÷ n, (0 ≤ n ≤
105).
Yêu cầu: Hãy xác định số tiền Harry còn lại sau khi sắm mọi thứ. Nếu Harry không đủ tiền thì
đƣa ra số -1.
Dữ liệu: Vào từ file văn bản MONEY.INP:
Dòng đầu tiên chứa 3 số nguyên g, s và k (0 ≤ g ≤ 105),
Dòng thứ 2 chứa số nguyên n,
Dòng thứ i trong n dòng sau chứa 3 số nguyên pi, qi, ri (0 ≤ pi ≤ 105).
Kết quả: Đƣa ra file văn bản MONEY.OUT trên một dòng 3 số nguyên xác địn số tiền còn lại
của Harry hoặc số -1.
Ví dụ:
MONEY.INP MONEY.OUT
5 16 10 2 2 18
2
3 9 21
040
KHẢM TRANH
Một họa sỹ đã lấy cảm hứng từ các tranh khảm sành sứ nổi tiếng để tạo ra một tƣờng phái nghệ
thuật riêng – nghệ thuật khảm tranh bằng màu. Trên tấm
vải nền màu trắng kích thƣớc w×h ô ông vẽ n hình chữ
nhật có màu khác màu nền(màu trắng). Hình chữ nhật thứ i
đƣợc xác định bởi cặp tọa độ đỉnh đối (x1i, y1i) và (x2i,
y2i), 0 ≤ x1i, x2i ≤ w, 0 ≤ y1i, y2i ≤ h, 1 ≤ w, h ≤ 100, i = 1
÷ n, 0 ≤ n ≤ 5 000.
Yêu cầu: Cho w, h, n và tọa độ các điểm xác định từng hình chữ nhật. Hãy xác định phần vải
còn đƣợc để mộc.
Kết quả: Đƣa ra file văn bản MOSAIC.OUT một số nguyên – diện tích phần để mộc.
Ví dụ:
MOSAIC.INP MOSAIC.OUT
55 18
2
1133
2442
Điểm A(xA, yA) nằm trên đƣờng nhìn thấy từ điểm B(xB, yB) nếu không có điểm nào của đoạn
thẳng AB nằm dƣới đƣờng đứt gãy.
Tháp là một đoạn thẳng thẳng đứng có độ dài khác không và điểm thấp nhất của tháp nằm trên
đƣờng đứt gãy. Công dân của đất nƣớc chỉ cảm thấy an toàn khi điểm cao nhất của tháp nằm trên
đƣờng nhìn thấy của ngƣời đó.
Cho điểm cao nhất của tháp có tọa độ (x, y). Hai trinh sát chạy từ điểm thấp nhất của tháp tƣơng
ứng sang hƣớng tây( tới hƣớng giảm dần về hoành độ x) và sang hƣớng đông ( tới hƣớng tăng
dần về hoành độ x). Mỗi trinh sát chạy theo bề mặt dãy núi đến khi bƣớc di chuyển tiếp theo của
anh ta không vƣợt quá tầm nhìn của anh ấy với điểm cao nhất của tháp hoặc đến biên của dãy
núi.
Chính phủ đã chuẩn bị q phƣơng án bố trí các tháp, mỗi tháp đƣợc xác định là hai số nguyên (uj,
vj) – tọa độ điểm cao nhất của tháp.
Yêu cầu: Hãy với mỗi phƣơng án bố trí tháp xác định hoành độ x của hai điểm mà hai trinh sát
chạy đến đƣợc.
Dữ liệu vào
Dòng đầu tiên chứa hai số nguyên n và q (1 ≤ n, q ≤ 400000)– số lƣợng liên kết của dãy đứt gãy
và số lƣợng phƣơng án đặt tháp.
Giới hạn các đại lƣợng dữ liệu vào phụ thuộc vào giá trị hằng số C có thể là 10 4 hoặc 109 phụ
thuộc vào bài toán con.
Mỗi dòng trong n dòng tiếp theo chứa hai số nguyên di, ki (1 ≤ di ≤ C; -C ≤ ki ≤ C)– hình chiếu
trên trục Ox và hệ số góc của liên kết thứ i của dãy đứt gãy. (0=x0 < x1 < x2 < …< xi < … < xn ≤
C; y0 = yn = 0; -C ≤ yi ≤ C).
Mỗi dòng của q dòng tiếp theo chứa hai số nguyên uj, vj (0 ≤ uj ≤ C, -C ≤ vj ≤ C)- các tọa độ điểm
trên cùng của tháp bố trí theo phƣơng án j.
Dữ liệu ra
Dữ liệu ra phải chứa q dòng, mỗi dòng chứa hai số nguyên lj và rj – tọa độ x của hai điểm mà
hai trinh sát chạy đến đƣợc, hƣớng về phía tây và hƣớng về phía đông tƣơng ứng với phƣơng án
bố trí tháp thứ j. Đảm bảo số lj và rj là các số nguyên.
Ví dụ:
MOUTAIN.INP MOUTAIN.OUT
61 38
31
2 -1
11
1 -1
11
2 -1
53
53 16
11 07
1 -2 06
20
21
1 -1
30
35
33
64 04
12 19
2 -2 4 10
11 1 10
1 -2
41
1 -1
14
34
10 4
74
84 06
1 -3 49
20 0 10
11 69
20
1 -3
13
12
10
2 -2
6 -1
64
7 -4
Ví dụ 1
Ví dụ 2
Ví dụ 3
Ví dụ 4
MP3 PLAYER
Steve mới mua một máy nghe nhạc MP3. Việc đầu tiên Steve làm là nạp từ máy tính các bài hát
mà mình yêu thích cùng với playlist tƣơng ứng gồm n tên bài hát khác nhau (2 ≤ n ≤ 2000).
Vốn đã nghe nhiều lần trên máy tính, Steve thuộc làu trình tự các bài hát trong playlist. Nghe
toàn bộ playlist vài lần, Steve xác lập chế độ “xáo trộn” và kinh ngạc nhận thấy không có hai bài
hát kề nhau trong playlist đƣợc phát liên tiếp và theo theo đúng trình tự đã nêu.
Các bài hát đƣợc đánh số từ 1 đến n theo trình tự ghi trong playlist. Steve băn khoăn, không biết
kiểu xáo trộn này sẽ đƣợc thực hiện bao nhiêu lần với playlist đã nạp.
Yêu cầu: Hãy xác định số lần xáo trộn với playlist có n bài hát khác nhau. Kết quả có thể rất lớn,
vì vậy chỉ cần đƣa ra theo mô đun m (2 ≤ m ≤ 109).
Dữ liệu: Vào từ file văn bản MP3.INP gồm một dòng chứa 2 số nguyên n và m.
Kết quả: Đƣa ra file văn bản MP3.OUT một số nguyên – kết quả tìm đƣợc.
Ví dụ:
MP3.INP MP3.OUT
5 1000000 53
Mỗi từ trong ngôn ngữ của bộ tộc Mumba hình thành từ các ký tự a và b theo quy tắc sau:
Không chứa 2 ký tự b liên tiếp,
Không có ba từ con giống nhau đứng liên tiếp trong một từ, nhƣ vậy aaa không phải là
một từ (có 3 từ con a liên tiếp), aabababa cũng không phải là một từ (có 3 từ con ab
liên tiếp).
Tất cả các xâu thỏa mãn những điều kiện trên đề là từ trong ngôn ngữ Mumba.
Yêu cầu: Cho số nguyên k (1 ≤ k ≤ 105). Hãy xác định số từ trong ngôn ngữ Mumba có độ dài
đúng bằng k.
Dữ liệu: Vào từ file văn bản MUMBA.INP gồm một dòng chứa số nguyên k.
Kết quả: Đƣa ra file văn bản MUMBA.OUT một số ngyên – kết quả tìm đƣợc.
Ví dụ:
MUMBA.INP MUMBA.OUT
5 7
Ví dụ:
NEXT_M.INP NEXT_M.OUT
5=1+1+3 5=1+2+2
Dữ liệu: Vào từ file văn bản NOSIMPLE.INP gồm một dòng chứa 3 số nguyên A, B, C.
Kết quả: Đƣa ra file văn bản NOSIMPLE.OUT một số nguyên – số dƣ tìm đƣợc.
Ví dụ:
NOSIMPLE.INP NOSIMPLE.OUT
3 4 5 1
NTFS
Nếu đĩa cứng máy tính đƣợc format theo chế độ NTFS thì bộ nhớ đƣợc phân phối cho các file
chứa trong đĩa cứng theo đơn vị cluster, mỗi cluster là một vùng nhớ có kích thƣớc 4KB
(1KB = 1024 byte). Nhƣ vậy dù tập tin có kích thƣớc nhỏ hơn hoặc bằng 4KB thì nó cũng chiếm
một vùng nhớ 4KB trên đĩa.
Yêu cầu: cho số nguyên dƣơng là kích thƣớc của một tập tin theo đơn vị byte. Hãy
xác định kích thƣớc theo KB mà tập tin chiếm trên đĩa cứng NTFS.
Dữ liệu: nhập từ bàn phím số nguyên dƣơng .
Kết quả: xuất ra màn hình kích thƣớc theo KB mà tập tin chiếm giữ.
ụ:
NTFS.INP NTFS.OUT
4097 8
Sách Tin Học dành cho học sinh PTNK Page 100
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
SỐ THÂN THIỆN
Số tự nhiên có rất nhiều tính chất thú vị. Ví dụ với số 23, số đảo ngƣợc của nó là 32. Hai số này
có ƣớc chung lớn nhất là 1. Những số nhƣ thế đƣợc gọi là số thân thiện, tức là số 23 đƣợc gọi là
số thân thiện, số 32 cũng đƣợc gọi là số thân thiện.
Yêu cầu: cho 2 số nguyên . Đếm số lƣợng số thân thiện trong đoạn giá trị
.
Kết quả: ghi ra tập tin văn bản NUMFRE.OUT số lƣợng số thân thiện tìm đƣợc.
Ví dụ:
NUMFRE.INP NUMFRE.OUT
20 30 3
Sách Tin Học dành cho học sinh PTNK Page 101
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
NUMPOS
Phong đƣợc lớp trƣởng phân công trực nhật vì vậy hôm nay bạn đến trƣờng sớm, giặt khăn lau
bảng và xóa bảng. Đang xóa bỗng Phong nhận thấy dãy số mà mình đã xóa một phần khá đặc
biệt, phần đầu của nó là
123234345456567
Đáng tiếc, phần còn lại của dãy đã bị xóa mất. Cuối cùng Phong cũng xóa xạch bảng trƣớc khi
chuông reng vào lớp, nhƣng dãy số trên vẫn cứ lởn vởn mãi trong đầu
Buổi tối khi đi ngủ, Phong lại nghĩ về dãy số này. Phong nhận thấy số 1 xuất hiện 1 lần trong
dãy, số 2 xuất hiện 2 lần và lần đầu ở vị trí thứ 2, số 3 xuất hiện 3 lần và lần đầu ở vị trí thứ 3,
nhƣng số 4 thì lần đầu tiên xuất hiện không ở vị trí thứ 4. Tổng quát hơn số k sẽ xuất hiện lần
đầu ở vị trí thứ mấy trong dãy.
Bạn có thể giúp Phong tìm ra vị trí xuất hiện đầu tiên của số nguyên trong dãy không?
Dữ liệu đƣợc nhập từ bàn phím số nguyên
Kết quả xuất ra màn hình vị trí xuất hiện đầu tiên của số nguyên
ụ:
NUMPOS.INP NUMPOS.OUT
5 9
Sách Tin Học dành cho học sinh PTNK Page 102
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Tèo có thể thực hiện các thao tác trên với số lần tùy thích sao cho tổng các phần tử của dãy là
nhỏ nhất có thể có.
Kết quả xuất ra tập tin văn bản NUMQUIZ.OUT số nguyên duy nhất là giá trị tổng nhỏ nhất
ụ:
NUMQUIZ.INP NUMQUIZ.OUT
2 2
12
Sách Tin Học dành cho học sinh PTNK Page 103
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
CON SỐ BÍ ẨN
Cho 5 số nguyên dƣơng , trong đó 4 số có cùng giá trị , số còn lại có giá trị
. Ví dụ hình minh họa 4 số có cùng giá trị và giá trị còn lại là .
3 7 3 3 3
1 2 3 4 5
Nhiệm vụ của bạn là chỉ ra giá trị và vị trí của số mang giá trị .
Dữ liệu: vào từ tập tin văn bản ODDNUM.INP năm số nguyên dƣơng theo thứ tự
.
Kết quả: ghi ra tập tin văn bản ODDNUM.OUT hai số nguyên dƣơng: số đầu tiên là giá trị ; số
tiếp theo là vị trí của số mang giá trị .
ụ:
ODDNUM.INP ODDNUM.OUT
37333 72
Sách Tin Học dành cho học sinh PTNK Page 104
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Kết quả: xuất tập tin văn bản OLYMPIC.OUT một số nguyên – số lƣợng bài tối đa có thể đƣợc
giải.
Ví dụ:
OLYMPIC.INP OLYMPIC.OUT
41 3
1 10
21 5
1 10
100 100
Sách Tin Học dành cho học sinh PTNK Page 105
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
SẮP XẾP ẢO
Một nhà lập trình nổi tiếng thử công việc của mình nhƣ là nhà ảo thuật. Ông hƣớng sự tập trung
của mọi ngƣời vào công việc nhƣ sau.
Cho một mảng gồm n số nguyên không âm a1, a2, a3,…, an ông ấy nhặt ra con số kỳ diệu b. Một
số nguyên không âm b đƣợc gọi là con số kỳ diệu đối với mảng nếu nhƣ thực hiện phép toán
XOR của số b này với mỗi phần tử của mảng làm chuyển đổi mảng thành thứ tự tăng dần. Có thế
nói nhƣ sau:
(a1 b) (a2 b) … (an b)
Sách Tin Học dành cho học sinh PTNK Page 106
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Dòng thứ ba chứa số nguyên q – số lƣợng thay đổi các phần tử của
mảng ( 0 ≤ q ≤ 106 ).
Tiếp theo là q dòng chứa hai số nguyên pi, vi , trong đó pi – vị trí của mảng mà sẽ thay đổi
giá trị mới (1 ≤ pi ≤ n) còn vi – giá trị mới của phần tử
này (0 ≤ vi < 230).
Ví dụ:
ORDER.INP ORDER.OUT
3 0
014 2
3 -1
27 4
33
14
Sách Tin Học dành cho học sinh PTNK Page 107
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
HỆ ĐIỀU HÀNH
Đĩa cứng của Steve có M sectors (1 ≤ M ≤ 109). Các sectors đƣợc đánh số từ 1 đến M. Steve lần
lƣợt cài các hệ điều hành khác nhau theo cách sau: tạo một vùng mới từ sector ai sector bi (kể
cả bi), cài tiếp lên đó hệ điều hành mới.
Nếu vùng này đè lên dù chỉ một sector của
một vùng nào trƣớc đó thì hệ thống đã cài ở
vùng đó sẽ bị hỏng, không khai thác tiếp
đƣợc.
Yêu cầu: Cho M, n – số lần cài đặt (0 ≤ n ≤
100 000) và các giá trị ai, bi (i = 1 ÷ n).
Hãy xác định số Hệ điều hành còn khai
thác đƣợc.
Dữ liệu: Vào từ file văn bản OS.INP:
Dòng đầu tiên chứa số nguyên M,
Dòng thứ 2 chứa số nguyên n,
Dòng thứ i trong n dòng sau chứa 2 số nguyên ai và bi.
Các dữ liệu đƣợc đƣa theo trình tự cài đặt.
Kết quả: Đƣa ra file văn bản OS.OUT một số nguyên – số hệ điều hành hoạt động đƣợc.
Ví dụ:
OS.INP OS.OUT
10 3
4
1 3
4 5
7 8
4 6
Sách Tin Học dành cho học sinh PTNK Page 108
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
SỐ ĐỐI XỨNG
Số đối xứng là số có thể viết từ trái sang phải các chữ số của nó ta vẫn đƣợc chính nó. Từ một số
có 2 chữ số, ta có thể nhận đƣợc một số đối xứng theo cách sau: lấy số ban đầu cộng với số phản
xạ gƣơng của nó, tức là số nhận đƣợc bằng cách đọc các chữ số từ phải sang trái. Nếu chƣa phải
là số đối xứng, số đó lại cộng với ánh xạ gƣơng của nó và tiếp tục nhƣ vậy cho tới khi nhận đƣợc
số đối xứng.
Ví dụ từ 48 ta có . Nhƣ vậy 363 là số đối xứng tƣơng ứng với
48.
Yêu cầu: cho số nguyên dƣơng , tìm số đối xứng tƣơng ứng của .
Dữ liệu: vào từ tập tin văn bản PALNUM.INP chứa số nguyên dƣơng
Kết quả: ghi ra tập tin văn bản PALNUM.OUT số đối xứng tƣơng ứng.
Ví dụ:
PALNUM.INP PALNUM.OUT
48 363
Sách Tin Học dành cho học sinh PTNK Page 109
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
TRÔNG XE
Một bãi đỗ xe nhận trông xe trong vòng một tháng. Mỗi xe sẽ đƣợc gắn một số hiệu là một số
nguyên dƣơng . Hai xe khác nhau sẽ đƣợc gắn hai số hiệu khác
nhau. Một xe có thể ra vào bãi đỗ xe nhiều lần, mỗi lần vào bãi đỗ xe, ngƣời trông xe sẽ ghi vào
sổ sách số hiệu của chiếc xe đó.
Cuối tháng dựa vào sổ ghi chép, ngƣời trông xe làm thống kê về số lần vào bãi đỗ xe của từng
chiếc xe để tiến hành thu phí. Nếu một chiếc xe vào bãi đỗ xe lần, cuối tháng chủ xe phải trả
một lƣợng phí đƣợc tính nhƣ sau:
Yêu cầu: Tính tổng số phí ngƣời trông xe thu đƣợc vào cuối tháng.
Kết quả: ghi ra tập tin văn bản PARK.OUT một số nguyên là tổng số phí thu đƣợc.
ụ:
PARK.INP PARK.OUT
7 201
10102010
10108888
10102010
10102010
10102010
10102010
10102010
Sách Tin Học dành cho học sinh PTNK Page 110
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
ĐỖ XE
Ở thời đại khi ô tô bay phát triển, nạn kẹt xe giảm hẳn, nhƣng lại xuất hiện những vấn đề mới.
Bất chấp những quy định nghiêm ngặt nhất, nhiều ngƣời vẫn đỗ xe lung tung khắp nơi, kể cả trên
thảm cỏ xanh đƣợc chăm sóc hết sức cẩn thận ở quảng trƣờng trung tâm thành phố. Ngƣời ta
phải dựng các chốt chống đỗ xe.
Thảm cỏ có dạng hình chữ nhật kích thƣớc ô. Mỗi xe khi đỗ cần đúng một ô trống không
có vật cản (kể cả ở trên biên). Việc xây dựng các chốt chống đỗ xe
cũng khá tốn kém và nếu dựng quá nhiều cũng sẽ mất mỹ quan. Vì
vậy ngƣời ta cố gắng dựng càng ít càng tốt. Ví dụ, với
thì chỉ cần dựng một chốt ở tâm là đủ.
Yêu cầu: Cho . Hãy xác định số chốt ít nhất
cần dựng.
Dữ liệu: vào từ tập tin văn bản PARKING.INP chứa 2 số nguyên
và .
Kết quả: ghi ra tập tin văn bản PARKING.OUT số lƣợng chốt ít nhất cần dựng.
Ví dụ:
PARKING.INP PARKING.OUT
22 1
Sách Tin Học dành cho học sinh PTNK Page 111
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Cặp số 305 và 43 là cặp số đầu tiên tính từ trái sang có tổng các chữ số là 8 và 7 tƣơng ứng, độ
lệch tổng các chữ số của cặp này là 1, trong trƣờng hợp này mật khẩu để mở cửa là 30543. Một
nghiên cứu viên tập sự đang gặp khó khăn trong việc xác định mật khẩu theo phƣơng pháp của
giám đốc đƣa ra. Bạn hãy giúp nghiên cứu viên này tìm ra mật khẩu để mở cửa trong thời gian
nhanh nhất có thể.
Kết quả: xuất ra tập tin văn bản PASSWORD.OUT là mật khẩu tìm đƣợc.
Ví dụ:
PASSWORD.INP PASSWORD.OUT
7 30543
75 305 19 221 43 1592 36
Sách Tin Học dành cho học sinh PTNK Page 112
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
ĐỒNG DIỄN
Để chuẩn bị cho lễ khai mạc Hội khỏe Phù Đổng đơn vị đăng cai tổ chức một màn đồng diễn.
Các học sinh biểu diễn xếp thành một khối, có n hàng ngang. Theo hàng ngang các học sinh
trong hàng có cùng độ cao. Theo hàng dọc – độ cao tăng dần. Các độ cao đƣợc đánh số từ 1 đến
n. Theo lệnh “Từ a đến b – Đổi chổ!” trong mỗi hàng dọc học sinh phải đổi chổ nhƣ sau: gọi ap
là vị trí của học sinh có độ cao a và bp là vị trí của học sinh có độ cao b, các học sinh trong
khoảng min(ap, bp) tới max(ap, bp) đảo ngƣợc chổ cho nhau (xem hình vẽ).
Hôm nay là buổi tổng diễn tập cuối cùng. Ban Tổ chức chuẩn bị sẵn dãy câu lệnh m câu lệnh và
muốn biết trình tự độ cao cuối cùng theo hàng dọc là nhƣ thế nào. Các câu lệnh đảm bảo dãy các
học sinh đổi chổ hoặc rời nhau hoặc lồng nhau.
Dữ liệu: Vào từ file văn bản PERFORM.INP:
n
Dòng đầu tiên chứa 2 số nguyên n và m (1 ≤ n ≤ 105, 1 ≤ m ≤ ),
2
Mỗi dòng trong m dòng sau chứa 2 số nguyên a và b xác định một câu lệnh. Các câu lệnh
đƣợc nêu theo trình tự thực hiện.
Kết quả: Đƣa ra file văn bản PERFORM.OUT một dòng chứa n số nguyên xác định trình tự độ
cao theo hàng dọc.
Ví dụ:
PERFORM.INP PERFORM.OUT
42 4231
14
23
Sách Tin Học dành cho học sinh PTNK Page 113
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
PHYSED.INP PHYSED.OUT
4 3
GBG
BB
GG
BGG
Sách Tin Học dành cho học sinh PTNK Page 114
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
ĐA GIÁC
Trên mặt phẳng có n đa giác không tự cắt, các đa giác đánh số từ 1 đến n. Ta nói rằng đa giác thứ
i nằm trong đa giác thứ j nếu mọi điểm thuộc đa giác thứ i đều nằm trong đa giác thứ j. Với hai
đa giác bất kì i và j ( i ≠ j) thỏa hoặc đa giác i nằm trong đa giác j hoặc đa giác j nằm trong đa
giác i.
n
Đa giác thứ k gọi là đa giác trung vị nếu có đúng m đa giác nằm trong đa giác thứ k với m
2
n n
, trong đó là số nguyên lớn nhất không lớn hơn .
2 2
Yêu cầu: Hãy tìm đa giác trung vị của n đa giác đã cho.
Dữ liệu : Vào từ file văn bản POLYGON.INP
Dòng đầu tiên là số n (2 ≤ n ≤ 104) – số đa giác.
n dòng tiếp theo, dòng thứ i mô tả đa giác thứ i : Đầu tiên là số đỉnh của đa giác ai ( 3 ≤ ai
≤ 100 ), tiếp theo là 2 × ai số nguyên có giá trị tuyệt đối không vƣợt quá 2 × 109 : xi1, yi1,
xi2, yi2, … với (xi1, yi1), (xi2, yi2),… lần lƣợt là tọa độ các đỉnh của đa giác đƣợc liệt kê
theo một chiều nào đó.
Kết quả: Ghi ra file văn bản POLYGON.OUT số nguyên k – chỉ số của đa giác trung vị.
Ví dụ :
POLYGON.INP POLYGON.OUT
3 3
3 -2 1 8 9 12 1
3756374
443779312
Sách Tin Học dành cho học sinh PTNK Page 115
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
PHẦN THƯỞNG
Để tập cho các cháu mẫu giáo làm quen với số và các khái niệm “lớn hơn”, “bé hơn” cô giáo
chuẩn bị n hộp giấy, bên ngoài hộp giấy thứ i ghi số nguyên ai. Các số ghi ngoài hộp khác nhau
từng đôi một. Các hộp đƣợc bỏ vào một túi ni lông to sẫm màu để không đọc đƣợc số từ bên
ngoài. Đến giờ học toán cô giáo cho các em lần lƣợt lên bàn cô, mỗi em lấy ra hai hộp, sau đó bỏ
lại vào túi hộp có số nhỏ hơn và giữ cho mình hộp kia. Lớp học có tất cả n-1 em. Đứng quan sát,
cô giáo rất hài lòng là không em nào bỏ sai hộp trở lại vào túi. Sau khi cả lớp đã lấy xong hộp
của mình cô giáo đi phát phần thƣởng cho các em, mỗi em nhận đƣợc số viên kẹo đúng bằng số
ghi ở hộp mà các em có.
Phụ huynh học sinh cũng rất thích thú với phƣơng pháp giảng dạy sinh động này. Tuy vậy có
ngƣời lo lắng, lỡ thiếu kẹo phát cho những học sinh cuối cùng thì sao? Cô giáo cho biết là bao
giờ cũng phải chuẩn bị đủ số kẹo phát cho các cháu, không thừa và không thiếu lấy một viên!
Yêu cầu: Cho n và các số ai (1 ≤ ai ≤ 32 767, i = 1 ÷ n, 1 < n ≤ 105). Hãy xác định số kẹo cô
giáo cần chuẩn bị.
Dữ liệu: Vào từ file văn bản PRIZE.INP:
Dòng đầu tiên chứa số nguyên n,
Dòng thứ 2 chứa n số nguyên a1, a2, . . ., an.
Kết quả: Đƣa ra file văn bản PRIZE.OUT một số nguyên – số kẹo cần chuẩn bị.
Ví dụ:
PRIZE.INP PRIZE.OUT
4 16
4 2 5 7
Sách Tin Học dành cho học sinh PTNK Page 116
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
BÌA ĐỤC LỖ
Sách Tin Học dành cho học sinh PTNK Page 117
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
ĐƯỜNG CHẠY
Cơ sở mới của trƣờng đã đƣợc xây dựng xong, tuy vậy vẫn còn một số hạng mục chƣa hoàn
thành, ví dụ khu giáo dục thể chất ngoài trời. Nhà trƣờng cần hoàn thiện gấp đƣờng chạy cho các
tiết thể dục đầu năm học. Khu giáo dục thể chất ngoài trời có dạng lƣới ô vuông kích thƣớc n×m
ô. Các hàng và cột đánh số từ 1, từ
trên xuống dƣới và từ trái qua phải. Ô
xuất phát và ô kết thúc đƣờng chạy là
cố định và đƣợc cho trƣớc. Cần phải
tổ chức dọn dẹp, san lấp lấp các ô để
đƣợc một đƣờng chạy độ rộng một ô
và bao gồm các ô kề cạnh. Chi phí xử
lý các ô là khác nhau, vì vậy cần chọn
đƣờng chạy sao cho chí phí chuẩn bị
là nhỏ nhất.
Yêu cầu: Cho n, m, (xs,ys) – tọa độ ô xuất phát, (xf, yf) – tọa độ ô kết thúc và chi phí dọn dẹp
cij ở mỗi ô (i, j). Hãy xác định chi phí nhỏ nhất để chuẩn bị đƣờng chạy và chỉ ra các ô cần xử
lý. Nếu có nhiều phƣơng án thì đƣa ra phƣơng án bất kỳ.
Dữ liệu: Vào từ file văn bản ROAD.INP:
Dòng đầu tiên chứa 2 số nguyên n và m ( 1 ≤ n, m ≤ 100),
Mỗi dòng trong n dòng tiếp theo chứa m số nguyên xác định chi phí xử lý các ô trên dòng
(mỗi số không vƣợt quá 100),
Dòng n+2 chứa 2 số nguyên xs và ys,
Dòng cuối cùng chứa 2 số nguyên xf và yf.
Kết quả: Đƣa ra file văn bản ROAD.OUT:
Dòng đầu tiên chứa một số nguyên – chi phí dọn dẹp đƣờng chạy,
Mỗi dòng trong n dòng tiếp theo chứa m số nguyên 0 hoặc 1, giá trị 1 tƣơng ứng với ô
cần xử lý.
Ví dụ:
ROAD.INP ROAD.OUT
3 3 5
1 1 1 1 0 0
1 1 1 1 1 0
10 1 1 0 1 1
1 1
3 3
Sách Tin Học dành cho học sinh PTNK Page 118
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
ROBOT DI CHUYỂN
Cho lƣới nguyên Oxy. Điểm nguyên và
điểm nguyên đƣợc gọi là kề nhau nếu
thỏa điều kiện .
Một robot ban đầu đứng tại gốc tọa độ. Ở mỗi
bƣớc, robot sẽ di chuyển sang một điểm nguyên
kề với vị trí hiện tại.
Từ bƣớc di chuyển thứ 2 trở đi, robot có thể đi
tiếp theo hƣớng cũ, rẽ sang trái, rẽ sang phải
hay trở lại vị trí trƣớc đó.
Trong ví dụ ở hình bên, từ ô (0, 0), robot đi đến (1, 0), rẽ trái sang ô (1, 1), rẽ phải sang ô (2, 1),
rẽ phải sang ô (2, 0), rẽ trái sang ô (3, 0) cuối cùng rẽ phải sang ô (3, -1).
Yêu cầu: cho tọa độ các điểm nguyên mà robot đã đi qua. Hãy đếm xem robot đã rẽ phải bao
nhiêu lần.
Dữ liệu: đọc từ tập tin văn bản ROBOT.INP có cấu trúc sau:
- Dòng đầu tiên chứa 1 số nguyên dƣơng n (2 ≤ n ≤ 10000) là tổng số điểm nguyên mà robot
đã đi qua (kể cả vị trí xuất phát là gốc tọa độ)
- Dòng thứ i trong n dòng tiếp theo chứa 2 số nguyên là tọa độ điểm nguyên mà robot đã
đi qua.
Kết quả: xuất ra tập tin văn bản ROBOT.OUT gồm một số nguyên là số lần robot đã rẽ phải
Ví dụ
ROBOT.INP ROBOT.OUT
7 3
00
10
11
21
20
30
3 -1
Sách Tin Học dành cho học sinh PTNK Page 119
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Sách Tin Học dành cho học sinh PTNK Page 120
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Tiếp theo dòng, mỗi dòng chứa ký hiệu là màu của ô và cho phép đặt
robot kích hoạt trên nó. Màu sắc là chữ cái tiếng Anh tƣơng ứng với hƣớng di
chuyển. "N" hay "n" - bắc, "S" hay "s" - nam, "E" hay "e" - đông và "W" hay "w" -
tây.
Các ô mà trên nó đặt các robot chƣa kích hoạt kí hiệu chữ cái viết hoa, còn
các ô không có robot chữ cái thƣờng. Đảm bảo rằng có ít nhất một robot chƣa kích
hoạt.
Dữ liệu ra
Dòng đầu tiên đƣa một số - số lƣợng lớn nhất của thực nghiệm. Với dữ
liệu vào khi giá trị bằng 1 thì mỗi dòng của dòng tiếp theo đƣa ra ba số nguyên
và : số dòng và cột của ô kích hoạt robot, thời điểm kích hoạt robot
). Các dòng đánh số từ 1 đến từ trên xuống
dƣới (từ bắc xuống nam), còn cột từ 1 đến từ trái sang phải (từ tây sang đông).
Nếu có nhiều cách làm thì hãy đƣa ra cách làm bất kì.
Ví dụ:
ROBOTS.INP ROBOTS.OUT
340 4
SSSS
EESW
ENWW
341 4
SSSS 232
EeSW 321
ENwW 341
212
441 5
essS 149
Eess 214
Snww 433
EeWN 412
447
Sách Tin Học dành cho học sinh PTNK Page 121
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
RÔ BỐT
Trong mạng lƣới đƣờng ống dẫn dầu có n trạm điều áp, đánh số từ 1 đến n và có m đoạn đƣờng
ống, mỗi đoạn nối 2 trạm điều áp (2 ≤ n, m ≤ 105). Mạng có tính liên thông, tức là giữa hai trạm
điều áp bao giờ cũng có đƣờng ống nối với nhau (trực tiếp hoặc qua các trạm khác). Một đoạn
đƣờng ống đƣợc gọi là trục nếu nó hỏng thì hệ thống mất liên thông. Trong hệ thống mà chúng ta
đang xét có ít nhất một đoạn đƣờng trục.
Do tính chất quan trọng của đƣờng trục
nên chúng đƣợc ƣu tiên trong công tác
duy tu bảo dƣỡng. Ngƣời ta chế tạo 2 rô
bốt phục vụ kiểm tra đƣờng trục. Khi
đƣợc lệnh kiểm tra 2 rô bốt (có thể đang
ở những trạm khác nhau) sẽ lựa chọn
một đoạn đƣờng trục và đồng thời
chuyển động tập kết tới hai đầu của đoạn
đƣờng trục này, mỗi rô bốt tới một đầu
của đoạn trục. Rô bốt chuyển động theo đƣờng ống, mỗi đơn vị thời gian đi đƣợc một đơn vị độ
dài. Thời gian tập kết là thời gian cần thiết để rô bốt đến sau tới đƣợc vị trí tập kết của mình. Rô
bốt luôn lựa chọn đoạn đƣờng trục cho thời gian tập kết là nhỏ nhất.
Yêu cầu: Cho cấu hình của mạng, các trạm u, v đang giữ rô bốt. Hãy xác định thời gian tập kết.
Dữ liệu: Vào từ file văn bản ROBOTS.INP:
Dòng đầu tiên chứa 2 số nguyên n và m,
Mỗi dòng trong m dòng sau chứa 3 số nguyên x, y và d xác định đoạn đƣờng ống độ dài
d nối 2 trạm x và y,
Dòng cuối cùng chứa 2 số nguyên u và v.
Kết quả: Đƣa ra file văn bản ROBOTS.OUT một số nguyên – thời gian tập kết.
Ví dụ:
ROBOTS.INP ROBOTS.OUT
8 11 7
1 2 3
1 3 5
1 4 8
2 4 3
3 4 4
4 5 2
5 6 9
5 7 3
6 7 4
6 8 5
7 8 6
3 6
Sách Tin Học dành cho học sinh PTNK Page 122
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
QUAY BẢNG
Cho 4 số nguyên đƣợc viết vào bảng vuông kích thƣớc theo thứ tự sau
Yêu cầu: Xác định số lƣợt quay bảng 90 độ theo chiều kim đồng hồ để đƣợc bảng có giá trị lớn
nhất. Nếu có nhiều cách quay bảng đƣợc cùng giá trị lớn nhất, chỉ ra số lƣợt quay ít nhất.
Dữ liệu: vào từ tập tin văn bản ROTATE.INP gồm 1 dòng chứa 4 số nguyên dƣơng
.
Kết quả: ghi ra tập tin văn bản ROTATE.OUT một số nguyên duy nhất là số lƣợt quay tối thiểu
tìm đƣợc.
ụ:
ROTATE.INP ROTATE.OUT
41 99 100 13 1
Sách Tin Học dành cho học sinh PTNK Page 123
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Yêu cầu: hãy chỉ ra một lộ trình ngắn nhất hƣớng dẫn Bờm đến địa điểm cần tham quan.
Dữ liệu: vào từ tập tin văn bản ROUTE.INP gồm 4 số nguyên dƣơng có giá trị
không vƣợt quá . Điểm xuất phát và điểm đến không trùng nhau.
Kết quả: ghi ra tập tin văn bản ROUTE.OUT dãy gồm các kí tự in hoa {N, S, W, E} mô tả một
lộ trình di chuyển ngắn nhất tìm đƣợc.
ụ:
ROUTE.INP ROUTE.OUT
1341 SEEES
Sách Tin Học dành cho học sinh PTNK Page 124
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
VỆ TINH
Chƣơng trình điều khiển vệ tinh phải hoạt động cực nhanh mới có thể đƣa ra các tác động kịp
thời. Bộ phận xây dựng chƣơng trình điều khiển chia thành k nhóm, mỗi nhóm đề xuất một phần
mềm riêng của mình và mỗi phần mềm có những ƣu và nhƣợc điểm riêng.
Để so sánh lựa chọn sản phẩm đƣa vào khai thác ngƣời ta cho chạy thử mỗi phần mềm với n bộ
dữ liệu khác nhau, xác định thời gian thực hiện mỗi chƣơng trình và tổng kết thành bảng a kích
thƣớc k≤n, trong đó aij là thời gian phần mềm i xử lý bộ dữ liệu j (i = 1 ≤ k, j = 1 ÷ n). Hệ số trội
mỗi lần thử của một phần mềm là số lần mà phần mềm có thời gian chạy ít hơn so với các lần
thử ứng với từng bộ dữ liệu của các phần mềm khác. Tính ƣu việt của mỗi phần mềm là tổng số
hệ số trội của các lần thử.
Yêu cầu: Cho n, k và bảng a. Hãy tính hệ số trội của các phần mềm.
Dữ liệu: Vào từ file văn bản SATELL.INP:
Dòng đầu tiên chứa 2 số nguyên n và k (1 ≤ n, k ≤ 1000),
Dòng thứ i trong k dòng sau chứa n số nguyên ai1, ai2, . . ., ain.
Kết quả: Đƣa ra file văn bản SATELL.OUT trên một dòng n số nguyên – tính ƣu việt của mỗi
phần mềm.
Ví dụ:
SATELL.INP SATELL.OUT
33 12 9 6
147
258
369
Sách Tin Học dành cho học sinh PTNK Page 125
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
DÃY SỐ
Ngƣời ta viết liên tục các số tự nhiên từ 1 trở đi không chứa khoảng cách tạo thành một chuỗi số
vô hạn nhƣ sau 123456789101112131415…
Yêu cầu: cho số nguyên dƣơng . Cho biết chiều dài của chuỗi số khi viết liên tiếp các
số tự nhiên từ đến theo cách trên.
Dữ liệu: vào từ tập tin văn bản SEQLEN.INP số nguyên dƣơng
Kết quả: ghi ra tập tin văn bản SEQLEN.OUT số nguyên dƣơng là chiều dài của chuỗi số.
ụ:
SEQLEN.INP SEQLEN.OUT
15 21
Sách Tin Học dành cho học sinh PTNK Page 126
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
DÃY SỐ
Xét dãy số nguyên a1, a2, . . ., an , . . ., trong đó a1 = 1, an đƣợc xác định nhƣ sau: đảo ngƣợc thứ
tự viết các chữ số của an-1 (trong hệ cơ số 10) và cộng thêm 2 vào số nhận đƣợc.
Phần đầu của dãy số này có giá trị nhƣ sau:
Chỉ số 1 2 3 4 5 6 7 8 ...
Dãy a 1 3 5 7 9 11 13 33 ...
Sách Tin Học dành cho học sinh PTNK Page 127
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Sách Tin Học dành cho học sinh PTNK Page 128
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Dữ liệu ra
Đƣa ra n số nguyên a1, a2, …, an.
Số ai phải là thời gian nhỏ nhất khi cài đặt gói dữ liệu trên máy chủ thứ i ở thời điểm ai, gói dữ
liệu sẽ đƣợc cài đặt trên tất cả các máy chủ. Nếu thời gian đối với máy chủ thứ i không tồn tại
cần đƣa ra ai = -1.
Ví dụ:
SERVERS.INP SERVERS.OUT
1 0
10
2 3
35 1
68
4 5
1032 5
46 4
55 -1
7 10
Chú ý:
Trong ví dụ đầu tiên có một máy chủ, thời gian nhỏ nhất có thể cài đặt gói dữ liệu là 0.
Trong ví dụ thứ hai có hai máy chủ, chuyển dữ liệu giữa chúng có thể trong đoạn từ 0 đến 8.
Máy chủ thứ nhất lƣu dữ liệu trong bộ đệm 3 đơn vị thời gian, còn máy chủ thứ hai 5 đơn vị thời
gian. Nếu gửi dữ liệu đến máy chủ đầu tiên ở thời điểm 3 thì nó chuyển dữ liệu đến máy chủ thứ
hai ở thời điểm 6. Tƣơng tự nếu chuyển dữ liệu đến máy chủ thứ hai ở thời điểm 1 thì nó chuyển
dữ liệu đến máy chủ đầu tiên ở thời điểm 6.
Trong ví dụ thứ ba không thể chuyển dữ liệu đến máy chủ thứ nhất để nó chuyển dữ liệu đến
máy chủ thứ ba kênh liên lạc 2-3 bị đóng lại cho đến khi kênh liên lạc 1-2 đƣợc mở ra. Có thể
chuyển dữ liệu cho máy chủ thứ hai hoặc máy chủ thứ ba ở thời điểm 5. Ở thời điểm này kênh 2-
3 mở vì nó nhanh chóng nhận máy chủ thứ hai và thứ ba. Ở thời điểm 7, khi kênh 1-2 đƣợc mở
dữ liệu một lần nữa sẽ đƣợc tìm thấy trong bộ đệm của máy chủ thứ hai và đƣợc chuyển đến máy
chủ đầu tiên.
Ở ví dụ thứ tƣ máy chủ thứ hai lƣu gói dữ liệu 0 đơn vị thời gian, còn kênh 2-3 mở trong khoảng
5-5. Để chuyển dữ liệu qua máy chủ thứ hai đến máy chủ thứ ba, nó phải đến máy chủ thứ hai ở
thời điểm 5. Nếu chúng ta muốn gửi dữ liệu đến máy chủ thứ ba thì có thể làm điều này ở thời
điểm 4 khi đó nó sẽ lƣu đến thời điểm 7 và sẽ cài đặt đƣợc cho tất cả các máy chủ.
Sách Tin Học dành cho học sinh PTNK Page 129
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
BẢY CHỮ SỐ
Steve thích sƣu tầm và giải các bài toán tin học trên mạng và tự đặt kế hoạch mỗi hôm phải giải
ít nhất một bài. Bài hôm nay Steve định giải có nội dung nhƣ sau: Xét dãy xâu bít {Si} đƣợc xây
dựng theo quy tắc:
S0 = 0
S1 = 01
S2 = 0110
S3 = 01101001
...........
Sj = Sj-1 + S j 1 , trong đó S j 1 nhận đƣợc từ xâu Sj-1 bằng cách thay 0 bằng 1 và thay 1
bằng 0.
Yêu cầu của bài toán là đƣa ra 7 ký tự liên tiếp của xâu Sk bắt đầu từ vị trí p.
Dữ liệu: Vào từ file văn bản SEVENDG.INP gồm một dòng chứa 2 số nguyên k và p (3 ≤ k ≤63,
1 ≤ p ≤ 2k – 7).
Kết quả: Đƣa ra file văn bản SEVENDG.OUT xâu chứa 7 ký tự tìm đƣợc.
Ví dụ:
SEVENDG.INP SEVENDG.OUT
32 1101001
Sách Tin Học dành cho học sinh PTNK Page 130
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
BÁN HÀNG
Để thu hút sự chú ý của khách hàng tới một loại sản phẩm mới ngƣời ta quyết định tặng cho
ngƣời mua sản phẩm này thêm một sản phẩm nữa từ danh sách n mặt hàng khuyến mãi. Hàng
tặng phẩm có giá trị trong phạm vi từ a phần trăm đến b phần trăm giá của sản phẩm mới.
Xuất phát từ lợi ích của cửa hàng, dĩ nhiên ngƣời bán hàng muốn chọn tặng phẩm thích hợp
nhƣng có giá nhỏ nhất trong số các hàng có thể tặng.
Hãy xác định sản phẩm tặng cho khách hàng.
Dữ liệu: Vào từ file văn bản SHOP.INP:
Dòng đầu tiên chứa một xâu – tên của sản phẩm mới,
Dòng thứ 2 chứa số nguyên t – giá của sản phẩm mới (1 ≤ t ≤ 109),
Dòng thứ 3 chứa 2 số nguyên a và b (1 ≤ a ≤ b ≤ 100),
Dòng thứ 4 chứa số nguyên n (1 ≤ n ≤ 1 000),
n cặp 2 dòng tiếp theo mô tả các mặt hàng trong danh sách tặng, dòng thứ nhất trong
nhóm chứa xâu ký tự xác định tên mặt hàng, dòng thứ 2 là một số nguyên dƣơng – giá
của mặt hàng này (không vƣợt quá 109).
Mỗi tên trong số tất cả các tên đề có độ dài không vƣợt quá 20, chứa các ký tự có mã ASCII
trong phạm vi từ 32 đến 127.
Kết quả: Đƣa ra file văn bản SHOP.OUT một xâu – tên của mặt hàng tặng cho ngƣời mua. Dữ
liệu đảm bảo tồn tại lời giải.
Ví dụ:
SHOP.INP SHOP.OUT
Coca-Cola 2l+2l. Coca-Cola 0,5l.
120
15 25
3
Coca-Cola 0,5l.
20
Dirol
14
Ice-cream
40
Sách Tin Học dành cho học sinh PTNK Page 131
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
ỐC SÊN
Con ốc sên đang ở gốc của một cái cây cao v mét tính từ gốc. Ốc sên muốn bò lên ngọn cây để
ăn những lá non trên đó. Ban ngày ốc sên bò đƣợc a mét lên trên,
nhƣng ban đêm, khi ngủ nó bị trôi xuống dƣới b mét.
Yêu cầu: Cho các số nguyên v, a và b (1 ≤ b < a ≤ v ≤ 109). Hãy xác
định số ngày cần thiết để ốc sên lên tới ngọn cây.
Dữ liệu: Vào từ file văn bản SNAIL.INP gồm một dòng chứa 3 số
nguyên a, b và v.
Kết quả: Đƣa ra file văn bản SNAIL.OUT một số nguyên – kết quả tìm đƣợc.
Ví dụ:
SNAIL.INP SNAIL.OUT
215 4
Sách Tin Học dành cho học sinh PTNK Page 132
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
GA HÀNG HÓA
Trên đƣờng nhánh của ga hàng hóa có n toa hàng (2 ≤ n ≤ 100 000). Các toa có chiều dài giống
nhau, nhƣng có thể có khối lƣợng khác nhau do chứa các hàng hóa khác nhau. Ngƣời ta phải sắp
lại vị trí các toa hàng để có đƣợc đoàn tàu với các toa sắp xếp theo thứ tự tăng dần của khối
lƣợng trƣớc khi kéo chúng lên đƣờng.
Để sắp xếp ngƣời ta thƣờng dùng một đầu máy phân loại. Nhƣng ở đây ngƣời ta đang thử
nghiệm một thiết bị phân loại cho phép tiết kiệm nhiều thời gian sắp xếp. Thiết bị này dài hơn
hai toa một chút, di chuyển theo nguyên tắc đệm không khí, trƣợt trên nóc toa, nhắc và hoán đổi
vị trí từng cặp toa. Sức nâng của thiết bị chỉ cho phép nó nhấc các cặp toa có tổng khối lƣợng
không vƣợt quá M (1 ≤ M ≤ 109).
Yêu cầu: Cho n, M và mi – khối lƣợng các các toa theo trình tự hiện tại (1 ≤ mi ≤ 109, i = 1 ÷ n).
Hãy cho biết có thể sắp xếp các toa thành đoàn tàu đƣợc hay không và đƣa ra câu trả lời Yes
hoặc No.
Dữ liệu: Vào từ file văn bản SORTING.INP:
Dòng đầu chứa 2 số nguyên n và m,
Dòng thứ hai chứa n số nguyên m1, m2, . . ., mn.
Kết quả: Đƣa ra file văn bản SORTING.OUT câu trả lời xác định đƣợc.
Ví dụ:
SORTING.INP SORTING.OUT
4 10 Yes
5 6 3 4
Sách Tin Học dành cho học sinh PTNK Page 133
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Kết quả: Đƣa ra file văn bản STANDING.OUT một số nguyên – số bảng đẹp liên tiếp có thể
xuất hiện.
Ví dụ:
STANDING.INP STANDING.OUT
7 12 9
12 6 3 3 1 0
Sách Tin Học dành cho học sinh PTNK Page 134
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
CHÒM SAO
Để tìm các chòm sao trên bầu trời ngƣời ta chụp ảnh nhiều lần cùng một hƣớng và cùng một kích
thƣớc rối so sánh chúng. Trên các ảnh chụp, các sao thuộc một chòm sao phải cùng xuất hiện với
vị trí tƣơng đối nhƣ nhau, nghĩa là khoảng cách giữa mỗi sao trong chòm với các sao còn lại
trong chòm sao phải nhƣ nhau. Do bầu trời có độ trong suốt khác nhau nên trên ảnh chụp có thể
lúc này hay lúc khác có xuất hiện thêm một số sao. Ngoài ra, do chuyển động của trái đất và độ
lắc quanh trục thị trƣờng của ống kính có thể bị xô dịch. Vì vậy chòm sao trên các ảnh chỉ trùng
khít lên nhau khi ta dịch chuyển tịnh tiến một ảnh chút ít.
Hình bên cho trƣờng hợp ta phải đẩy mẫu tịnh tiến sang phải 2 đơn vị (tăng x 2 đơn vị) và tịnh
tiến xuống dƣới 3 đơn vị (giảm y 3 đơn vị).
Yêu cầu: Cho ảnh mẫu chòm sao có m ngôi sao(1 ≤ m ≤200), tọa độ của từng ngôi sao trong mẫu,
cho ảnh chụp bầu trời có n sao ( 1 ≤ n ≤ 1 000) và tọa độ từng sao trên ảnh. Tất cả các tọa độ đều
có giá trị nguyên nằm trong khoảng [0, 106]. Trên mỗi ảnh không có 2 ngôi sao nào ở cùng một
vị trí. Hãy xác định cách tịnh tiến mẫu sao cho các sao trong mẫu trùng với các sao tƣơng ứng
trên ảnh, tức là xác định x, y – tham số phép tịnh tiến.
Dữ liệu: Vào từ file văn bản STARS.INP:
Dòng đầu tiên chứa số nguyên m,
Sách Tin Học dành cho học sinh PTNK Page 135
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Mỗi dòng trong m dòng sau chứa 2 số nguyên – tọa độ một ngôi sao trong chòm,
Dòng m+2 chứa số nguyên n,
Mỗi dòng trong n dòng tiếp theo chứa cặp số nguyên xác định vị trí một ngôi sao trên ảnh
chụp bầu trời.
Kết quả: Đƣa ra file văn bản STARS.OUT trên một dòng 2 số nguyên x và y.
Ví dụ:
STARS.INP STARS.OUT
5 2 -3
8 5
6 4
4 3
7 10
0 10
10
10 5
2 7
9 7
8 10
10 2
1 2
8 1
6 7
6 0
0 9
Sách Tin Học dành cho học sinh PTNK Page 136
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
THIẾT BỊ KĨ THUẬT SỐ
Một thiết bị kĩ thuật số mới đƣợc nghiên cứu để lƣu giữ thông tin. Thông tin trên thiết bị đƣợc
lƣu ở dạng dãy các ô, mỗi ô chứa một trong hai trạng thái đƣợc ký hiệu là <<+>> và <<->> và
nhƣ vậy lƣu một bit thông tin.
Gọi là một đoạn nhóm các ô gần nhau có cùng trạng thái nếu nhƣ bên trái hoặc không có ô nào
hoặc có các ô ở trạng thái đối ngƣợc và bên phải hoặc không có ô nào hoặc có các ô ở trạng thái
đối ngƣợc.
Lệnh viết cho phép chọn cặp lân cận các đoạn khác độ dài và thay đổi trạng thái tất cả các ô của
đoạn có độ dài ngắn hơn thành trạng thái đối lập với các ô đó, nhƣ vậy có thể nối hai hay ba đoạn
lân cận thành một.
Yêu cầu viết chƣơng trình từ đoạn trạng thái các ô đầu vào và đoạn trạng thái đầu ra, hỏi có thể
sử dụng lệnh viết để biến đổi từ đoạn trạng thái các ô đầu vào thành đoạn trạng thái các ô đầu ra
đƣợc hay không?
Dữ liệu vào từ file văn bản STORAGE.INP
Dòng đầu tiên chứa số nguyên q ( 1 ≤ q ≤ 106 ) – số lƣợng test.
Mỗi dòng trong q dòng tiếp theo chứa si, ti – dãy không rỗng các ký hiệu <<+>> và <<-
>> có cùng độ dài cách nhau bởi khoảng trắng. Dòng này cho biết trong test thứ i từ dãy
trạng thái ô si cần nhận dãy ti ở đầu ra.
Ví dụ:
STORAGE.INP STORAGE.OUT
3 Yes
++- +++ No
++-- ++++ Yes
++-+--+- ++++++++
3 Yes
++-+-- ++---- No
++-+-- +++--- Yes
-++- -++-
Sách Tin Học dành cho học sinh PTNK Page 137
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
TỔNG
Steve mới đƣợc quà sinh nhật từ bố mẹ. Đó là một chiếc máy tính bấm tay Casio mới tinh. Sau
khi đƣợc hƣớng dẫn cách thực hiện liên hoàn các phép tính Steve chạy về phòng mình ngồi hàng
giờ để tính tổng các số nguyên liên tiếp
a + (a+1) + (a+2) + . . . + b
Steve hãnh diện cho bố mẹ xem tổng S nhận đƣợc và ngẩn ngƣời khi đƣợc hỏi tổng S đƣợc tính
từ đâu tới đâu!
Yêu cầu: Cho số nguyên S (1 ≤ S ≤ 1012). Hãy xác định các cặp số nguyên dƣơng a, b (a ≤ b)
tƣơng ứng với S đã cho.
Dữ liệu: Vào từ file văn bản SUM.INP gồm một dòng chứa số nguyên S.
Ví dụ:
SUM.INP SUM.OUT
25 3
37
12 13
25 25
Sách Tin Học dành cho học sinh PTNK Page 138
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
MUA VÉ XE
Để khuyến khích mọi ngƣời sử dụng các phƣơng tiện giao thông trong thành phố, ngoài việc bán
lẻ với giá cho một vé thì ở hầu hết các nƣớc đều có chế độ bán sỉ với giá cho mỗi tập gồm
vé.
Bạn đến thành phố tham quan và dự kiến sẽ đi chuyến trên các phƣơng tiện giao thông công
cộng. Vấn đề đặt ra là nên mua vé nhƣ thế nào để tiết kiệm tiền nhất. Dĩ nhiên, bạn không hề có
ý nghĩ là sẽ đi lậu vé một lần nào.
Yêu cầu: Cho các số nguyên dƣơng các số đều có giá trị không vƣợt quá 109. Nếu
thì . Hãy tính chi phí tối thiểu cần thiết để mua vé.
Dữ liệu: vào từ tập tin văn bản TICKETS.INP 4 số nguyên .
Kết quả: ghi ra tập tin văn bản TICKETS.OUT chi phí tối thiểu tìm đƣợc.
Ví dụ:
TICKETS.INP TICKETS.OUT
12 10 17 120 154
Sách Tin Học dành cho học sinh PTNK Page 139
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
XÂY THÁP
Có N khối đá hình hộp chữ nhật. Kích thƣớc mỗi khối đƣợc biểu diễn bằng 3 số nguyên dƣơng
d1, d2, d3. Ngƣời ta muốn xây một cái tháp bằng cách chồng các khối đá này lên nhau. Để đảm
bảo an toàn, các khối đá đƣợc đặt theo nguyên tắc:
Chiều cao của mỗi khối là kích thƣớc nhỏ nhất trong ba kích thƣớc d1, d2, d3;
Các mép của các khối đƣơc đặt song song với nhau sao cho không có phần nào của khối
nằm trên bị chìa ra ngoài so với khối nằm dƣới.
Yêu cầu: Hãy tìm phƣơng án xây dựng để đạt đƣợc tháp cao nhất.
Dữ liệu: vào từ tập tin văn bản TOWER.INP:
Dòng đầu tiên là số N
N dòng tiếp, mỗi dòng ghi 3 số nguyên dƣơng là kích thƣớc của một khối đá. Các khối đá
đƣơc đánh số từ 1 theo trình tự xuất hiện trong file.
Các số trên một dòng trong file đƣợc ghi cách nhau ít nhất một dấu cách. Giới hạn số
khối đá không quá 5000 và các kích thƣớc của các khối đá không quá 255.
Kết quả: ghi ra tập tin văn bản TOWER.OUT một số nguyên dƣơng là độ cao của tháp tìm
đƣợc.
Các tập tin dữ liệu mẫu:
TOWER.INP TOWER.OUT Giải thích
9 13 Lần lƣợt chọn các khối đá 1, 9, 5 và
755 4 để xây tháp sẽ có độ cao là 13
448
115
422
515
427
292
133
555
Sách Tin Học dành cho học sinh PTNK Page 140
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
ĐƯỜNG TRƯỢT
Ở Phan Thiết có vùng đồi cát nhấp nhô. Khách du lịch thƣờng rất thích thú ngồi trên các mo cau
trƣợt từ trên đỉnh đồi xuống. Một công ty du lịch
muốn cung cấp một dịch vụ hấp dẫn hơn để thu hút
khách du lịch. Khách sẽ đƣợc thuê các xe trƣợt, tìm
cảm giác mạnh bằng cách trƣợt từ trên đỉnh cao
xuống theo lộ trình thiết kế sẵn.
Địa hình là C đồi cát có đỉnh khá bằng phẳng hình
tròn với độ cao nhất định, trên đó lại có thể nhô lên
các đồi con khác. Các đồi con rời nhau hoặc chồng
lên nhau, không có trƣờng hợp chờm lên nhau một
phần. Xe trƣợt lao từ trên cao xuống và cũng có thể
có những đoạn lên cao, nhƣng không đƣợc cao quá
điểm xuất phát. Để đảm bảo an toàn trên tuyến đƣờng
trƣợt không có quá k+1 đoạn bằng phẳng (tức là
không quá k lần cắt đƣờng biên của các hình tròn
đỉnh đồi). Vùng không thuộc một vòng tròn mô tả đồi
nà có độ cao là 0.
Yêu cầu: Cho C, k, tọa độ tâm (xi, yi), bán kính ri
và độ cao hi của mỗi đồi cát (1 ≤ C, k ≤ 2000, |xi|, |yi| ≤ 2 000, 1 ≤ ri ≤ 2 000,|hi| ≤ 1 000, i =
1 ÷ C, các giá trị đều nguyên).Hãy xác định chênh lệch độ cao lớn nhất của đƣờng trƣợt có thể
thiết kế.
Dữ liệu: Vào từ file văn bản TRACE.INP:
Dòng đầu tiên chứa 2 số nguyên C và k,
Dòng thứ i trong C dòng sau chứa 4 số nguyên xi, yi, ri và hi.
Kết quả: Đƣa ra file văn bản TRACE.OUT một số nguyên – kết quả tìm đƣợc.
Ví dụ:
TRACE.INP TRACE.OUT
10 4 68
38 61 2 73
69 34 3 15
61 59 4 30
40 60 5 66
58 44 6 30
71 34 6 -2
47 21 6 45
41 58 8 52
41 57 11 37
48 40 33 10
Sách Tin Học dành cho học sinh PTNK Page 141
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
TÀU ĐIỆN
Rạng Đông là một thành phố không lớn nhƣng có một mạng giao thông công cộng bằng tàu điện
rất thuận tiện và hợp lý. Từ hai bến đỗ bất kỳ có thể đi tới nhau bằng tàu điện và chỉ có một cách
đi duy nhất. Nhƣ vậy mạng tàu điện tạo thành một
cây mà nút là các bến đỗ và cạnh là tuyến đƣờng
tàu.
Ban đầu, giữa hai bến đổ bất kỳ có ít nhất một
tuyến tàu điện chạy. Nhƣng với sự phát triển của
thành phố và các loại phƣơng tiện giao thông công
cộng khác một số tuyến bị hủy bỏ vì gần nhƣ
không còn hành khách. Điều này dẫn đến việc một
số đoạn đƣờng sắt không có tàu nào chạy qua.
Chính quyền thành phố quyết định tháo dỡ những
đoạn đƣờng này.
Yêu cầu: Cho số nguyên n (2 ≤ n ≤ 100 000) – số
bến đỗ. Các bến đƣợc đánh số từ 1 đến n. Cho (n-1) cặp số bi, ei xác định các cặp bến đỗ có
đƣờng tàu nối trực tiếp. Cho m – số tuyến đang hoạt động (0 ≤ m ≤ 100 00) và m cặp số (x, y),
mỗi cặp số xác định một tuyến đi từ x tới y theo đƣờng ngắn nhất.Hãy xác định số các đoạn
đƣờng cần tháo dỡ.
Dữ liệu: Vào từ file văn bản TRAM.INP:
Dòng đầu tiên chứa số nguyên n,
Dòng thứ i trong n-1 dòng sau chứa 2 số nguyên bi và ei,
Dòng tiếp theo chứa số nguyên m,
Mỗi dòng trong m dòng sau chứa 2 số nguyên x và y.
Kết quả: Đƣa ra file văn bản TRAM.OUT một số nguyên – số các đoạn đƣờng cần tháo dỡ.
Ví dụ:
TRAM.INP TRAM.OUT
7 1
1 2
2 3
2 4
5 2
5 6
7 5
3
1 7
2 4
7 6
Sách Tin Học dành cho học sinh PTNK Page 142
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
QUAY XÂU KÝ TỰ
Cho S là một xâu gồm không quá 80 ký tự, mỗi ký tự là một chữ cái trong bảng chữ cái tiếng
Anh A-Z, a-z. Ta gọi phép dịch chuyển S đi 1 ký tự là việc chuyển ký tự đầu tiên của S xuống vị
trí cuối cùng. Ký hiệu T(S) là xâu thu đƣợc sau phép dịch chuyển S đi một ký tự.
Cho trƣớc xâu S và số nguyên dƣơng N < 10100, cần tìm xâu thu đƣợc sau khi thực hiện N phép
dịch chuyển đối với S, tức là tìm T(T(...T(S)...)) (có N chữ T trong biểu thức).
Dữ liệu: Vào từ file văn bản TRANSTR.INP:
Dòng đầu tiên chứa số N;
Dòng thứ hai chứa xâu ký tự S.
Kết quả: Đƣa ra file văn bản TRANSTR.OUT xâu ký tự thu đƣợc.
Ví dụ:
TRANSTR.INP TRANSTR.OUT
3 puterCom
Computer
Sách Tin Học dành cho học sinh PTNK Page 143
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Kết quả: Đƣa ra file văn bản TRIANGLE.OUT n dòng, mô tả các dòng của khóa sau khi quay
(tƣơng tự nhƣ cách mô tả chìa trong input).
Ví dụ:
TRIANGLE.INP TRIANGLE.OUT
3
1 9
234 487
56789 13265
counterclockwise
Sách Tin Học dành cho học sinh PTNK Page 144
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
DÃ NGOẠI
Nhóm ngƣời tổ chức một cuộc du lịch dã ngoại trên sông bằng thuyền đôi. Ngƣời thứ trong
nhóm có trọng lƣợng . Mỗi thuyền du lịch đôi có thể chở 1 hoặc 2 ngƣời với tổng trọng lƣợng
không quá . Số thuyền mà hãng du lịch có là không hạn chế.
Yêu cầu: Hãy xác định số lƣợng thuyền ít nhất cần thuê.
Dữ liệu: đọc từ tập tin văn bản TRIP.INP gồm không quá 10 tests, mỗi test trên 2 dòng
Kết quả: xuất ra tập tin văn bản TRIP.OUT mỗi test trên một dòng dƣới dạng số nguyên
TRIP.INP TRIP.OUT
4 135 2
50 74 60 82 4
6 135
50 120 74 60 100 82
Sách Tin Học dành cho học sinh PTNK Page 145
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Kết quả: Đƣa ra file văn bản TUNEL.OUT một số nguyên – chi phí nhỏ nhất tìm đƣợc.
Ví dụ:
TUNEL.INP TUNEL.OUT
3 11
-1 -1 -1
5 5 5
10 10 10
Sách Tin Học dành cho học sinh PTNK Page 146
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
SỐ SINH ĐÔI
Trong lý thuyết số hai số nguyên tố p và q đƣợc gọi là cặp số nguyên tố sinh đôi nếu q – p = 2.
Ví dụ, các cặp số (3, 5), (11, 13), (17, 19) là các cặp sinh đôi. Trong trƣờng hợp tổng quát, với số
nguyên dƣơng k cho trƣớc, cặp số nguyên tố p và q đƣợc gọi là sinh đôi (tổng quát) nếu
q – p = k. Ví dụ, với k = 4 cặp số nguyên tố (3, 7) đƣợc gọi là sinh đôi tổng quát.
Tồn tại giả thuyết là các cặp số nguyên tố sinh đôi nhiều vô hạn. Tuy nhiên, điều đó chƣa đƣợc
chứng minh. Dễ dàng thấy rằng với k cho trƣớc, xác định số cặp sinh đôi tổng quát trong tập số
tự nhiên là bài toán phức tạp không kém việc xác định số lƣợng cặp sinh đôi theo định nghĩa
thông thƣờng.
Ở đây chúng ta xét một bài toán đơn giản hơn.
Yêu cầu: Cho n và k (1 ≤ n, k ≤ 106). Hãy xác định số cặp sinh đôi tổng quát trong phạm vi từ 1
đến n.
Dữ liệu: Vào từ file văn bản TWINS.INP gồm một dòng chứa 2 số nguyên n và k.
Kết quả: Đƣa ra file văn bản TWINS.OUT một số nguyên – số lƣợng cặp tìm đƣợc.
Ví dụ:
TWINS.INP TWINS.OUT
17 2 3
Sách Tin Học dành cho học sinh PTNK Page 147
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Sách Tin Học dành cho học sinh PTNK Page 148
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Ví dụ:
VIDEO.INP VIDEO.OUT
24 2
1221
1221
32 2
22
22
22
33 3
111
121
111
Giải thích:
Ở ví dụ đầu tiên với lệnh “phải” có thể nhận đƣợc block thuận tiện để quan sát gồm số 1 ở bên
trái, còn bên phải block thuận tiện để quan sát là số 2.
Ở ví dụ thứ hai thì từ màn hình ban đầu có hai block thuận tiện để quan sát.
Ở ví dụ thứ ba dùng lệnh “phải” và “dƣới” có thể phân ra đƣợc ba block thuận tiện để quan sát.
Sách Tin Học dành cho học sinh PTNK Page 149
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
Kết quả: Đƣa ra file văn bản XOR_OP.OUT trên một dòng m số nguyên, số thứ j là ak tìm đƣợc ứng với
bj.
Ví dụ:
XOR_OP.INP XOR_OP.OUT
2 003
30
3
239
Sách Tin Học dành cho học sinh PTNK Page 150
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
TÔ MÀU
Jimmy chia bảng kích thƣớc thành lƣới ô vuông kích thƣớc ô là và tô mỗi ô bằng
một trong hai màu đen hoặc trắng sao cho không có 2 ô kề cạnh nào có cùng màu. Các hàng của
lƣới đƣợc đánh số từ dƣới lên trên từ 1 đến , các cột
đƣợc đánh số từ 1 đến từ trái qua phải.
Rôn muốn biết số lƣợng ô màu đen so với số lƣợng ô
màu trắng nhƣ thế nào và nhận thấy rằng chỉ cần biết
màu ở ô thứ trên dòng là có thể có ngay câu trả lời.
Yêu cầu: Cho và , trong đó là màu ô thứ
trên dòng , là màu đen, còn là màu trắng
. Hãy xác định tƣơng quan giữa số ô
màu trắng và số ô màu đen, đƣa ra câu trả lời:
Dữ liệu: vào từ tập tin văn bản W_B.INP gồm một dòng chứa 5 số nguyên và .
Kết quả: ghi ra tập tin văn bản W_B.OUT câu trả lời tƣơng ứng.
Ví dụ:
W_B.INP W_B.OUT
35110 black
Sách Tin Học dành cho học sinh PTNK Page 151
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
DÂY D N
Cho đoạn dây điện . Đoạn thứ có độ dài . Cần phải cắt các
đoạn đã cho thành các đoạn sao cho có đƣợc đoạn dây bằng nhau. Có thể không cần cắt hết các
đoạn dây đã cho. Mỗi đoạn dây bị cắt có thể có phần còn thừa khác 0.
Yêu cầu: xác định độ dài lớn nhất của đoạn dây có thể nhận đƣợc. Nếu không có cách cắt thì đƣa
ra số 0.
Dữ liệu: vào từ tập tin văn bản WIRES.INP gồm nhiều tests, mỗi test trên một nhóm dòng
Kết quả: ghi ra tập tin văn bản WIRES.OUT, kết quả mỗi test đƣa ra trên một dòng dƣới dạng
số nguyên.
ụ:
WIRES.INP WIRES.OUT
4 11 200
802
743
547
539
Sách Tin Học dành cho học sinh PTNK Page 152
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM
TỪ DÀI NHẤT
Cho xâu ký tự chỉ gồm các chữ cái in hoa và dấu cách. Một dãy liên tiếp các chữ cái in hoa
trong xâu đƣợc gọi là một từ.
Yêu cầu: Hãy cho biết có bao nhiêu từ trong xâu ký tự và chiều dài của từ dài nhất.
Dữ liệu: vào từ tập tin văn bản WORDS.INP gồm một dòng chứa xâu ký tự gồm không quá
ký tự.
Kết quả: ghi ra tập tin văn bản WORDS.OUT hai số nguyên là số từ trong xâu và độ dài của từ
dài nhất.
ụ:
WORDS.INP WORDS.OUT
TOP OF THE WORLD 45
Sách Tin Học dành cho học sinh PTNK Page 153