You are on page 1of 153

TRƢỜNG PHỔ THÔNG NĂNG KHIẾU – ĐHQG TPHCM

HIGH SCHOOL FOR THE GIFTED – VNU HCM

SÁCH TIN HỌC


DÀNH CHO HỌC
SINH PTNK

Tiến sĩ Đào Duy Nam


PTNK – ĐHQG TPHCM
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

Làm trai phải lạ ở trên đời,

Há để càn khôn tự chuyển dời

Sách Tin Học dành cho học sinh PTNK Page 2


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 3


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

HỘI KHỎE PHÙ ĐỔNG ............................................................................................................................ 56


TÔ MÀU ..................................................................................................................................................... 57
XÂU FIBONACCI ..................................................................................................................................... 58
XÂU FIBONACCI 2 .................................................................................................................................. 59
LỌC SỐ ...................................................................................................................................................... 60
ĐÁNH CÁ TRÊN SÔNG KAMA .............................................................................................................. 61
TẶNG HOA ................................................................................................................................................ 62
ĐẶT QUẦY PHỤC VỤ ............................................................................................................................. 63
THỨ SÁU NGÀY 13.................................................................................................................................. 64
ẾCH ............................................................................................................................................................ 65
ẾCH ĐỘT BIẾN GEN ................................................................................................................................ 66
HÀM SỐ ..................................................................................................................................................... 67
GEN VI KHUẨN ........................................................................................................................................ 68
QUÀ TẶNG ................................................................................................................................................ 69
SẾU ............................................................................................................................................................. 70
BÀI TẬP VỀ NHÀ ..................................................................................................................................... 71
SỐ NGUYÊN TỐ ....................................................................................................................................... 72
THẦN TƢỢNG .......................................................................................................................................... 73
DÃY CON ĐƠN ĐIỆU TĂNG DÀI NHẤT .............................................................................................. 74
TỐI GIẢN PHÂN SỐ ................................................................................................................................. 75
BA LÔ DU LỊCH........................................................................................................................................ 76
TÁO QUÂN ................................................................................................................................................ 77
HIỆN SỐ BẰNG ĐÈN LED....................................................................................................................... 78
NGÔN NGỮ ............................................................................................................................................... 79
KHÓA SỐ ................................................................................................................................................... 80
THÀNH PHỐ MAY MẮN ......................................................................................................................... 81
LŨY THỪA CỦA 2.................................................................................................................................... 82
ĐƢỜNG VÀNH ĐAI ................................................................................................................................. 83
CÁC THỎI NAM CHÂM .......................................................................................................................... 84
TẦN SỐ XUẤT HIỆN NHIỀU NHẤT ...................................................................................................... 85
DƢA HẤU Ở CÁNH ĐỒNG KỲ DIỆU .................................................................................................... 86
HỖN HỢP ................................................................................................................................................... 87
MODULO ................................................................................................................................................... 88
TIỀN ........................................................................................................................................................... 89
KHẢM TRANH.......................................................................................................................................... 90
ĐẶT THÁP PHÒNG THỦ Ở CÁC NGỌN NÚI ....................................................................................... 91
MP3 PLAYER ............................................................................................................................................ 96
NGÔN NGỮ MUMBA............................................................................................................................... 97
CÁCH TIẾP THEO .................................................................................................................................... 98
KHÔNG ĐƠN GIẢN ................................................................................................................................. 99
NTFS ......................................................................................................................................................... 100
SỐ THÂN THIỆN .................................................................................................................................... 101
NUMPOS .................................................................................................................................................. 102
TRÕ CHƠI VỚI DÃY SỐ ........................................................................................................................ 103
CON SỐ BÍ ẨN ........................................................................................................................................ 104
LUYỆN TẬP DỰ THI HỌC SINH GIỎI ................................................................................................. 105
SẮP XẾP ẢO ............................................................................................................................................ 106
HỆ ĐIỀU HÀNH ...................................................................................................................................... 108

Sách Tin Học dành cho học sinh PTNK Page 4


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

SỐ ĐỐI XỨNG......................................................................................................................................... 109


TRÔNG XE .............................................................................................................................................. 110
ĐỖ XE ...................................................................................................................................................... 111
DÒ TÌM MẬT KHẨU .............................................................................................................................. 112
ĐỒNG DIỄN ............................................................................................................................................ 113
GIỜ THỂ DỤC ......................................................................................................................................... 114
ĐA GIÁC .................................................................................................................................................. 115
PHẦN THƢỞNG...................................................................................................................................... 116
BÌA ĐỤC LỖ ............................................................................................................................................ 117
ĐƢỜNG CHẠY........................................................................................................................................ 118
ROBOT DI CHUYỂN .............................................................................................................................. 119
THỰC NGHIỆM KỸ THUẬT ROBOT ................................................................................................... 120
RÔ BỐT .................................................................................................................................................... 122
QUAY BẢNG ........................................................................................................................................... 123
THAM QUAN THÀNH PHỐ .................................................................................................................. 124
VỆ TINH................................................................................................................................................... 125
DÃY SỐ .................................................................................................................................................... 126
DÃY SỐ .................................................................................................................................................... 127
CÁC MÁY CHỦ Ở SAO THỦY.............................................................................................................. 128
BẢY CHỮ SỐ .......................................................................................................................................... 130
BÁN HÀNG.............................................................................................................................................. 131
ỐC SÊN .................................................................................................................................................... 132
GA HÀNG HÓA....................................................................................................................................... 133
KẾT QUẢ ĐẸP......................................................................................................................................... 134
CHÒM SAO.............................................................................................................................................. 135
THIẾT BỊ KĨ THUẬT SỐ ........................................................................................................................ 137
TỔNG ....................................................................................................................................................... 138
MUA VÉ XE............................................................................................................................................. 139
XÂY THÁP .............................................................................................................................................. 140
ĐƢỜNG TRƢỢT ..................................................................................................................................... 141
TÀU ĐIỆN ................................................................................................................................................ 142
QUAY XÂU KÝ TỰ ................................................................................................................................ 143
CHÌA KHÓA TAM GIÁC ........................................................................................................................ 144
DÃ NGOẠI ............................................................................................................................................... 145
MẠNG GIAO THÔNG ............................................................................................................................ 146
SỐ SINH ĐÔI ........................................................................................................................................... 147
ĐIỀU KHIỂN MÁY QUAY PHIM .......................................................................................................... 148
PHÉP TÍNH XOR ..................................................................................................................................... 150
TÔ MÀU ................................................................................................................................................... 151
D Y DẪN ................................................................................................................................................ 152
TỪ DÀI NHẤT ......................................................................................................................................... 153

Sách Tin Học dành cho học sinh PTNK Page 5


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐỒNG HỒ BÁO THỨC


An rất mê đồng hồ loại hiển thị bằng số điện tử sử dụng 7 đèn LED để biểu diễn các số từ 0 đến
9 nhƣ hình bên dƣới.

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ồ .

- Nếu có nhiều kết quả thì in ra kết quả bất kỳ


- Nếu không tìm đƣợc kết quả thì in ra thông báo “Impossible”

Ví dụ:

ALARM.INP ALARM.OUT
23 09:30

ALARM.INP ALARM.OUT
28 Impossible

Sách Tin Học dành cho học sinh PTNK Page 6


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 7


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

PHẢN VẬT CHẤT


Công ty kiểm tra công nghệ nhận phản vật chất sử dụng trong chất lƣợng nhiên liệu trong tàu vũ
trụ liên hành tinh. Phản vật chất nhận đƣợc trong kết quả của các thí nghiệm đặc biệt trong lò
phản ứng.
Đƣợc biết n loại thí nghiệm, diễn ra để nhận phản vật chất. Trong kết quả diễn ra thử nghiệm thứ
loại thứ i trong bể chứa lò phản ứng đƣợc thêm vào từ li đến ri gram phản vật chất. Từ việc đảm
bảo an toàn nghiêm cấm đƣa vào bể chứa lò phản ứng nhiều hơn a gram phản vật chất.
Chi phí để tiến hành thí nghiệm loại thứ i là ci, còn chi phí của một gram phản vật chất nhận
đƣợc là 109.
Nếu sau khi tiến hành thí nghiệm trong bể chứa hình thành t gram phản vật chất, còn tổng chi phí
tiến hành thí nghiệm trong lò phản ứng là s, thì lợi nhuận đƣợc xác định theo công thức
(t . 109 – s ). Công ty cần phát triển chiến lƣợc tiến hành thí nghiệm cho phép nhận đƣợc lợi
nhuận lớn nhất mà đảm bảo có thể nhận đƣợc.
Sự phụ thuộc vào kết quả của chiến lƣợc thí nghiệm trƣớc xác định thí nghiệm loại nào tiến hành
hoặc quyết định bỏ thực nghiệm thí nghiệm. Chiến lƣợc cho phép đảm bảo nhận đƣợc lợi nhuận
x, nếu trong bất kỳ kết quả tiến hành thí nghiệm: đầu tiên, trong bể chứa lò phản ứng đƣợc chỉ ra
không nhiều hơn a gram phản vật chất, thứ hai lợi nhuận đạt đƣợc không nhỏ hơn x.
Ví dụ, có thể chỉ một loại thí nghiệm làm ra từ 4 đến 6 gram phản vật chất, chi phí cho nó là 10,
còn công suất bể chứa đạt đƣợc 17 gram. Khi đó sau hai lần tiến hành thí nghiệm trong bể có từ
8 đến 12 gram phản vật chất. Nếu nhận 12 gram phản vật chất thì không thể tiến hành thí nghiệm
thêm nữa nhƣ trong trƣờng hợp nhận 6 gram phản vật chất bể chứa có thể bị tràn. Các trƣờng
hợp còn lại có thể tiến hành thí nghiệm trong ba lần và nhận đƣợc từ 12 đến 17 gram phản vật
chất. Trong trƣờng hợp xấu nhất tiến hành thí nghiệm ba lần chi phí là 30, lợi nhuận
( 12 . 109 – 30 ) = 11 999 999 970.
Yêu cầu: Viết chƣơng trình xác định lợi nhuận lớn nhất x, mà đảm bảo có thể nhận đƣợc.
Dữ liệu vào
 Dòng đầu tiên chứa hai số nguyên n – số lƣợng các loại thí nghiệm và a – số lƣợng phản vật chất
lớn nhất cho phép trong bể chứa ( 100 , 1 ≤ a ≤ 2 000 000 ).

Sách Tin Học dành cho học sinh PTNK Page 8


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

 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

Sách Tin Học dành cho học sinh PTNK Page 9


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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.

Dữ liệu: Đọc từ tập tin văn bản AREA.INP

- Dòng đầu chứa 2 số nguyên dƣơng .


- Trong dòng tiếp theo, mỗi dòng chứa kí tự là dấu * hoặc dấu # biểu diễn dữ liệu của
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
******##*******
*****##********
******#######**
#######****##**
******###**#***
**###***###****

Sách Tin Học dành cho học sinh PTNK Page 10


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 11


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

TỔNG NHỎ NHẤT


Cho hai dãy số nguyên và hãy tìm một phần tử trong dãy
và một phần tử trong dãy có là nhỏ nhất có thể .

Dữ liệu: vào từ tập tin văn bản ASUMMIN.INP

- Dòng 1 chứa hai số nguyên dƣơng


- Dòng 2 chứa số nguyên ( )
- Dòng 3 chứa số nguyên ( )

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:

Sách Tin Học dành cho học sinh PTNK Page 12


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐẤ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:

- Là một số nguyên dƣơng mà trong đó là hai số nguyên dƣơng cho trƣớc;


- là một số nguyên tố;
- là một số đối xứng (đọc từ trái qua phải thu đƣợc kết quả giống nhƣ đọc từ phải qua
trái).

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

Sách Tin Học dành cho học sinh PTNK Page 13


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

DÃY SỐ TRUNG BÌNH CỘNG


Mirko vừa nghĩ ra một cách luyện tập các phép toán số học mà cậu cho là thú vị nhƣ sau: trƣớc
tiên Mirko viết một dãy gồm các số . Sau đó, bên dƣới mỗi phần tử của dãy số đầu tiên, Mirko
viết một con số là giá trị trung bình cộng các phần tử của tính từ đầu dãy đến vị trí hiện tại.

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.

Dữ liệu: vào từ tập tin văn bản AVGSEQ.INP

- Dòng đầu tiên chứa số nguyên dƣơng


- Dòng tiếp theo chứa dãy số nguyên

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

Sách Tin Học dành cho học sinh PTNK Page 14


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

THU NHẶT BÓNG


Trong một trò chơi vận động, đội chơi sẽ cử ngƣời thực hiện một số lƣợt để lấy hết tất cả quả
bóng của ban tổ chức theo luật chơi. Lƣợt thứ nhất, ngƣời chơi chỉ đƣợc lấy tối đa 1 quả, lƣợt thứ
2 chỉ đƣợc lấy tối đa quả, lƣợt thứ 3 chỉ đƣợc lấy tối đa quả. Tổng quát,
lƣợt thứ ngƣời chơi chỉ đƣợc lấy tối đa quả bóng.

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.

Dữ liệu: vào từ tập tin văn bản BALLOONS.INP số nguyên dƣơng .

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

Sách Tin Học dành cho học sinh PTNK Page 15


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 16


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 17


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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 αβγ.

1 – Biến cây thành xấu,


0 – Biến cây thành tốt

αβγ
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

Sách Tin Học dành cho học sinh PTNK Page 18


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐƯỜ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ữ liệu: vào từ tập tin văn bản BFS.INP

- 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

Sách Tin Học dành cho học sinh PTNK Page 19


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 20


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

CẦU KHỈ

Sách Tin Học dành cho học sinh PTNK Page 21


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

SỐ Ô ĐEN TRÊN BÀN CỜ


Một bàn cờ gồm dòng, cột, các dòng và cột đƣợc đánh thứ tự 1 2 3 4 5
1
từ 1 (hình minh họa). Mỗi ô đƣợc sơn đen hoặc trắng đan xen
nhau tƣơng tự bàn cờ vua. Ô ở dòng cột 2

của bàn cờ đƣợc sơn màu đen. Hãy xác định có bao 3

nhiêu ô đƣợc sơn màu đen. 4


Dữ liệu: vào từ tập tin văn bản BCELLS.INP chứa bốn số
nguyên trên cùng dòng và cách nhau khoảng trắng
Kết quả: ghi ra tập tin văn bản BCELLS.OUT số ô đƣợc sơn màu đen.
Ví dụ:

BCELLS.INP BCELLS.OUT

4534 10

Sách Tin Học dành cho học sinh PTNK Page 22


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 23


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 24


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

KHÔI PHỤC NGOẶC


Một dãy dấu ngoặc hợp lệ là một dãy các ký tự "(" và ")" đƣợc định nghĩa nhƣ sau:

- Dãy rỗng (không có ký tự nào) là một dãy dấu ngoặc hợp lệ


- Nếu A là một dãy dấu ngoặc hợp lệ thì (A) là dãy dấu ngoặc hợp lệ. Dấu ngoặc mở và dấu
ngoặc đóng hai bên dãy A đƣợc gọi là tƣơng ứng với nhau
- Nếu A và B là hai dãy dấu ngoặc hợp lệ thì AB là dãy dấu ngoặc hợp lệ.

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

- Dòng 1: Ghi số là số phần tử của dãy số còn lại


- Dòng 2: Ghi lần lƣợt các số trong dãy

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

Sách Tin Học dành cho học sinh PTNK Page 25


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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.

Dữ liệu: vào từ tập tin văn bản CALENDAR.INP

- Dòng đầu tiên chứa số nguyên dƣơng .


- Dòng tiếp theo chứa hai số nguyên cách nhau khoảng
trắng là một ngày hợp lệ ở NDPlanet.

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

Sách Tin Học dành cho học sinh PTNK Page 26


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 27


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

Đ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

Sách Tin Học dành cho học sinh PTNK Page 28


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

PHÒNG THỦ PHÁO ĐÀI


Bức tƣờng của một pháo đài gồm n đoạn đƣợc đánh số từ 1 đến n. Có một cuộc tấn công vào
pháo đài nhƣ sau: Tại bức tƣờng thứ i thì có ai kẻ tấn công. Những ngƣời tham gia bảo vệ lâu đài
thì có các năng lực riêng của mình. Ở bức tƣờng thứ i mỗi ngƣời bảo vệ có khả năng đẩy lùi ki kẻ
tấn công. Giả sử đoạn thứ i có xi ngƣời phòng thủ. Khi đó nếu số lƣợng kẻ tấn công không vƣợt
quá đại lƣợng xi * ki, thì ở đoạn này không một kẻ tấn công nào có thể vƣợt qua. Ngƣợc lại sẽ có
(ai - xi*ki) kẻ tấn công lọt vào lâu đài.
Yêu cầu viết chƣơng trình phân bố ngƣời bảo vệ ở các đoạn tƣờng sao cho với s ngƣời bảo vệ thì
số lƣợng kẻ tấn công lọt vào lâu đài là nhỏ nhất.
Dữ liệu vào từ file văn bản CASTLE.INP
 Dòng đầu tiên chứa số nguyên n số lƣợng đoạn tƣờng và s là số lƣợng ngƣời bảo vệ lâu
đài (1 ≤ n ≤ 105, 1 ≤ s ≤ 109).
 Tiếp theo là n dòng chứa hai số nguyên ai, ki lần lƣợt là số lƣợng kẻ tấn công ở đoạn
tƣờng i và số lƣợng kẻ tấn công có thể đƣợc đẩy lùi bởi một ngƣời bảo vệ ở đoạn tƣờng
thứ i. (1 ≤ ai, ki ≤ 109).

Dữ liệu ra file văn bản CASTLE.OUT


 Một số nguyên duy nhất - số lƣợng kẻ tấn công lọt vào lâu đài.

Ví dụ:
CASTLE.INP CASTLE.OUT
1 10 0
81
33 3
42
11
10 8

Sách Tin Học dành cho học sinh PTNK Page 29


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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ách Tin Học dành cho học sinh PTNK Page 30


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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.

Steve rất thích loại sô cô la mới này và nghĩ


rằng mình phải ăn đủ k ô mới cảm nhận đƣợc
hết vị ngon của nó. Steve bẻ tấm sô cô la để lấy
đúng k miếng. Phần còn thừa (nếu có) – chia
cho ngƣời bạn thân của mình.

Để tránh nhầm lẫn Steve luôn bẻ đôi tấm sô cô


la hoặc phần xuất hiện sau mỗi lần bẻ.

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

Sách Tin Học dành cho học sinh PTNK Page 31


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

RẠP CHIẾU BÓNG


Thành phố khai trƣơng một rạp chiếu bóng mới. Các bạn trẻ háo hức mua vé đến dự buổi chiếu
phim khai mạc. Mỗi vé vào cửa đƣợc tặng kèm một lon nƣớc giải khát. Hàng mà Steve ngồi có n
ghế và tất cả đều có ngƣời ngồi. Có những ngƣời đi một mình, nhƣng cũng có đôi yêu nhau cùng
đi và ngồi ở 2 ghế cạnh nhau trong hàng. Ở hai đầu của hàng cũng nhƣ giữa 2 ghế có lắp giá để
khách đặt lon nƣớc giải khát của mình, nhƣng giữa 2 ghế của các đôi yêu nhau giá để bị tháo
xuống, vì vậy có thể có ngƣời không có chổ để lon nƣớc xuống giá cạnh ghế của mình.
Ví dụ, hàng có 9 ghế và những ngƣời ngồi trong hàng đƣợc xác định bởi xâu “SLLLLSSLL”,
trong đó “S” là ngƣời đi một mình, “L” là ngƣời đi theo cặp. Nếu ký hiệu dấu “*” là giá để lon
thì trạng thái của hàng sẽ là “*S*LL*LL*S*S*LL*”. Nhƣ vậy, ít nhất có 2 ngƣời không có chổ
để lon nƣớc cạnh ghế của mình.
Hãy xác định số lƣợng tối đa những ngƣời có thể để lon nƣớc cạnh ghế của mình.
Dữ liệu: Vào từ file văn bản CINEMA.INP:
 Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 50),
 Dòng thứ 2 chứa xâu độ dài n mô tả những ngƣời ngồi trong hàng.

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

Sách Tin Học dành cho học sinh PTNK Page 32


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

GIAO THÔNG THÀNH PHỐ


Sơ đồ giao thông của một thành phố có dạng một lƣới ô vuông m dòng và n cột(m, n ≤ 200).
Các dòng đƣợc đánh số từ 1 đến m từ trên xuống dƣới, các cột đƣợc đánh số từ 1 đến n từ trái
sang phải. Nút nằm trên giao của dòng i và cột j có tọa độ là (i,j). Các nút của lƣới tƣơng ứng
với các nút giao thông, còn các cạnh của các ô vuông tƣơng ứng với các đoạn đƣờng phố. Mỗi
nút giao thông (i,j) có độ cao A[i,j] ( A[i,j] là số nguyên dƣơng không vƣợt quá 32767 ). Từ một
nút giao thông chỉ có thể di chuyển đến nút kề cạnh với nó. Đi từ một nút có độ cao nhỏ hơn đến
nút có độ cao lớn hơn ta mất một chi phí bằng hiệu độ cao của hai nút đó. Còn đi từ nút có độ
cao lớn hơn đến nút có độ cao nhỏ hơn hoặc bằng nó thì không mất một khoản chi phí nào.

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.

Dữ liệu : Vào từ file văn bản CITY.INP

 Dòng 1 là kích thƣớc bản đồ với hai số nguyên dƣơng m, n.


 Dòng 2 chứa hai số nguyên dƣơng x1, y1 (1≤x1≤m, 1≤y1≤n) là tọa độ của nút xuất phát .
 Dòng 3 chứa hai số nguyên dƣơng x2, y2 (1≤x2≤m, 1≤y2≤n) là tọa độ nút đích.
 Dòng thứ i trong số m dòng tiếp theo chứa n số nguyên dƣơng là các độ cao của các nút trên
dòng i của lƣới (1≤ i≤ m).

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

Sách Tin Học dành cho học sinh PTNK Page 33


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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:

 Thông tin trƣớc khi mã hóa, kí hiệu là P


 Thông tin sau khi mã hóa, kí hiệu là C
 Chìa khóa, kí hiệu là K
 Phƣơng pháp mã hóa/giải mã, kí hiệu là E/D.

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:

Sách Tin Học dành cho học sinh PTNK Page 34


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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.

Yêu cầu: Hãy thực hiện phƣơng pháp mã hóa này.

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.

Các tập tin dữ liệu mẫu:

CODE.INP CODE.OUT
ACM RW

Sách Tin Học dành cho học sinh PTNK Page 35


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 36


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

LẮP RÁP MÁY TÍNH

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.

Dữ liệu: Vào từ file văn bản COMPUTER.INP:


 Dòng thứ nhất chứa 3 số nguyên a1, a2 và a3 (0 ≤ a1, a2, a3 ≤ 100),
 Dòng thứ hai chứa 3 số nguyên b1, b2 và b3 (0 ≤ b1, b2, b3 ≤ 100).
Kết quả: Đƣa ra file văn bản COMPUTER.OUT một số nguyên – kết quả tìm đƣợc.

Ví dụ:

COMPUTER.INP COMPUTER.OUT

346 12
2 11 0

Sách Tin Học dành cho học sinh PTNK Page 37


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐIỀU HÕA NHIỆT ĐỘ


Văn phòng nơi Steve làm việc đƣợc trang bị một điều hòa nhiệt độ loại mới với thiết bị điều
khiển hết sức đơn giản, quản lý 2 tham số: nhiệt độ và chế độ làm việc. Máy có 4 chế độ làm
việc:
 “freeze” – làm lạnh. Chỉ giảm nhiệt độ. Nếu nhiệt độ phòng không cao hơn nhiệt độ đặt
thì máy tắt.
 “heat” – làm nóng. Chỉ tăng nhiệt độ. Nếu nhiệt độ phòng không thấp hơn nhiệt độ đặt
thì máy tắt.
 “auto” – tự động. Có thể tăng hoặc giảm nhiệt độ cho đến mức đã đặt.
 “fan” – quạt gió. Không làm thay đổi nhiệt độ, trong phòng.

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

Sách Tin Học dành cho học sinh PTNK Page 38


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

CÁC THÀNH PHẦN LIÊN THÔNG


Cho đồ thị vô hƣớng gồm đỉnh và cạnh. Hãy liệt kê các thành phần liên thông
của đồ thị.

Dữ liệu: vào từ tập tin văn bản CONNECT.INP

- Dòng 1 chứa hai số nguyên dƣơng


- dòng tiếp theo mỗi dòng chứa hai số nguyên dƣơng thể hiện có cạnh nối từ đỉnh tới
đỉnh trong đồ thị.

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

Sách Tin Học dành cho học sinh PTNK Page 39


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

DÃY LIÊN TIẾP


Gọi là số chữ số của số nguyên dƣơng . Ta viết một dãy các số nguyên liên tiếp bắt đầu từ
, nghĩa là ta có dãy Biết rằng, khi thêm số nguyên vào dãy thì ta sẽ phải
tốn một chi phí là . Chẳng hạn với và thì dãy gồm phần tử:
sẽ tốn chi phí .
Yêu cầu: cho biết chiều dài lớn nhất của dãy gồm các số nguyên liên tiếp bắt đầu từ và với chi
phí ban đầu .
Dữ liệu: vào từ tập tin văn bản CONSEQ.INP gồm 3 số nguyên dƣơng ,
,
Kết quả: xuất ra tập tin văn bản CONSEQ.OUT gồm 1 số nguyên dƣơng là chiều dài lớn nhất
của dãy tạo đƣợc.
Ví dụ:
CONSEQ.INP CONSEQ.OUT
911 9

Sách Tin Học dành cho học sinh PTNK Page 40


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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).

Dữ liệu: Vào từ file văn bản CONVEX.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à yi.
Kết quả: Đƣa ra file văn bản CONVEX.OUT một số nguyên – số lƣợng điểm tìm đƣợc.
Ví dụ:
CONVEX.INP CONVEX.OUT
5 6
11
14
54
51
22

Sách Tin Học dành cho học sinh PTNK Page 41


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 42


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 43


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐƯỜ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

Sách Tin Học dành cho học sinh PTNK Page 44


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 45


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 46


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐƯỜ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ữ liệu: vào từ tập tin văn bản DFS.INP

- 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

Sách Tin Học dành cho học sinh PTNK Page 47


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ƯỚC SỐ

Cho n số nguyên dƣơng a1, a2, . . ., an (1 ≤ ai ≤ 1014, i = 1 ÷ n, 1 ≤ n ≤50).

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).

Dữ liệu: Vào từ file văn bản DIVISOR.INP:

 Dòng đầu tiên chứa số nguyên n,


 Dòng thứ i trong n dòng sau chứa số nguyên ai.

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

Sách Tin Học dành cho học sinh PTNK Page 48


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Ví dụ số 132 sẽ mã hóa thành accb.


Yêu cầu: từ xâu ký tự cho trƣớc, hãy giải mã để tìm số nguyên dƣơng tƣơng ứng.
Dữ liệu: Vào từ file văn bản DECODE.INP xâu chứa không quá 100 ký tự a,b, c.
Kết quả: Đƣa ra file văn bản DECODE.OUT số tƣơng ứng hoặc -1 nếu xâu không tƣơng ứng với
một số nguyên nào.
Ví dụ:
DECODE.INP DECODE.OUT
abcac 129

Sách Tin Học dành cho học sinh PTNK Page 49


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 50


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

LÂY NHIỄM EBOLA


Một cơ quan có nhân viên đƣợc đánh số thứ tự từ 1 đến . Mỗi ngƣời có một phòng làm việc riêng của
mình. Do nhu cầu công việc, hàng ngày mỗi nhân viên có thể phải tiếp xúc với một số nhân viên khác.
Vào một ngày làm việc bình thƣờng, có một nhân viên bị nhiễm bệnh Ebola, nhƣng do không biết nên
ngƣời này vẫn đi làm. Đến cuối ngày làm việc ngƣời ta mới phát hiện ra ngƣời nhiễm bệnh Ebola đầu
tiên, Khả năng lây lan của Ebola rất nhanh chóng: một ngƣời nhiễm bệnh nếu tiếp xúc với một ngƣời
khác có thể sẽ truyền bệnh cho ngƣời này.

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ữ liệu: vào từ tập tin văn bản EBOLA.INP

- 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á

Kết quả: ghi ra tập tin văn bản EBOLA.OUT

- 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

Sách Tin Học dành cho học sinh PTNK Page 51


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

- Dòng đầu tiên chứa 2 số nguyên


- Dòng thứ trong dòng tiếp theo chứa số nguyên cho
biết số phiếu bầu của các ứng viên thứ ở thành phố thứ .

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

Sách Tin Học dành cho học sinh PTNK Page 52


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 53


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

EQUATION
Hãy giải phƣơng trình nghiệm nguyên dƣơng sau:

trong đó là tổng các chữ số của ; nguyên


Dữ liệu nhập từ bàn phím 3 số nguyên trên cùng dòng và cách nhau khoảng trắng
Kết quả xuất ra màn hình tất cả nghiệm nguyên dƣơng không vƣợt quá của phƣơng trình,
mỗi nghiệm trên một dòng, theo thứ tự tăng dần. Nếu phƣơng trình vô nghiệm xuất ra “No
solution”.
Ví dụ:
EQUATION.INP EQUATION.OUT
328 10
2008
13726

Sách Tin Học dành cho học sinh PTNK Page 54


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

XÂY DỰNG HÀNG RÀO


Một khu đất hình chữ nhật kích thƣớc (gồm hàng, mỗi hàng gồm ô vuông độ dài cạnh
là 1). Ngƣời ta cần làm hàng rào để ngăn cách từng ô vuông riêng biệt (độ dày hàng rào là không
đáng kể). Đƣờng biên xung quanh khu đất cũng cần đƣợc rào lại.

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).

Dữ liệu: vào từ tập tin văn bản FENCES.INP hai số nguyên .

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

Sách Tin Học dành cho học sinh PTNK Page 55


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

HỘI KHỎE PHÙ ĐỔNG


Ba môn thi đồng đội chính trong Hội khỏe Phù Đổng năm nay là Kéo tay trên xà, Nằm sấp
chống tay và Nhảy ngựa gỗ. Mỗi đơn vị cử một đội gồm 3 học sinh tham gia. Hội khỏe đƣợc tiến
hành theo 3 vòng, vòng thứ nhất các đội thi kéo tay trên xà, vòng thứ hai – thi nằm sấp chống tay
và vòng thứ 3 – nhảy ngựa. Ở mỗi môn tất cả các thành viên trong đội đều phải tham gia thi.
Điểm của mỗi đội ở mỗi vòng là tổng điểm đạt đƣợc của cả 3 thành viên. Điểm xếp hạng là tổng
điểm ba vòng của mỗi đội.
Mỗi môn có độ khó khác nhau nên biểu điểm cũng khác nhau: mỗi lần kéo tay trên xà đƣợc tính
X điểm, mỗi lần nằm sấp chống tay đƣợc tính Y điểm và mỗi lần nhảy ngựa thành công – Z
điểm.
Thành phố có n học sinh thể lực tốt, có thể chọn đi thi. Học sinh thứ i có thể kéo tay trên xà Ai
lần, nằm sấp chống tay Bi lần và nhảy ngựa Ci lần. Nhƣng ngay cả khi có đầy đủ thông tin nhƣ
vậy cũng khó thành lập đội tuyển vì ngƣời kéo tay tốt thì nằm sấp chống tay lại không xuất sắc,
ngƣời chống tay tốt thì khả năng nhảy ngựa không cao, . . . Thật khó để tìm ra một đội tuyển có
thành tích đồng đội cả ba môn cao.
Yêu cầu: Cho các số nguyên n, X, Y, Z, Ai, Bi, Ci ( i = 1 ÷ n, 3 ≤ n ≤ 105). Hãy chỉ ra 3 học sinh
để thành lập đội tuyển.
Dữ liệu: Vào từ file văn bản FESTIVAL.INP:
 Dòng đầu tiên chứa 3 số nguyên X, Y, Z (1 ≤ X, Y, Z ≤ 104),
 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 Ai, Bi, Ci (1 ≤ Ai, Bi, Ci ≤ 104).
Kết quả: Đƣa ra file văn bản FESTIVAL.OUT trên một dòng 3 số nguyên – số thứ tự của các
học sinh đƣợc chọn. Các học sinh đƣợc đánh số từ 1 và có thứ tự trùng với trình tự xác định
trong file nput. Các số đƣợc đƣa ra theo thứ tự tăng dần. Nếu có nhiều cách chọn thì đƣa ra một
cách chọn tùy ý.
Ví dụ:
FESTIVAL.INP FESTIVAL.OUT
232 345
6
314
511
232
323
232
141

Sách Tin Học dành cho học sinh PTNK Page 56


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

TÔ MÀU

Sách Tin Học dành cho học sinh PTNK Page 57


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 58


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 59


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 60


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐÁNH CÁ TRÊN SÔNG KAMA


Các ông chủ tàu đánh cá trên dòng sông Kama quyết định tối ƣu công việc làm ăn của mình vào
mùa hè. Họ nhận đƣợc quyết định đánh bắt cá ở n điểm đánh bắt trên kênh sông tại các khoảng
cách x1, x2, …, xn kilomet từ cửa sông. Trong đó với điểm chỉ số i thì không bắt nhiều hơn ai tấn
cá. Số cá đƣợc đánh bắt có thể bán ở m cơ sở bán buôn đƣợc phân bố dọc bờ sông tại các điểm
có khoảng cách y1,y2,…,ym kilomet cách cửa sông. Trong đó cơ sở tại điểm thứ j ở mùa này chỉ
có năng lực mua không nhiều hơn bj tấn cá với giá là cj đồng một tấn.
Khoảng cách từ cửa sông đến các điểm đánh bắt và cơ sở bán buôn đƣợc đo dọc theo kênh sông.
Tàu đƣợc gửi đi đánh bắt từ cửa sông và phải trở về cửa sông sau khi kết thúc mùa đánh bắt. Ở
mùa hiện tại tàu có thể bơi dọc lên trên xuống dƣới bất kì vị trí nào của con sông, dừng để đánh
bắt hoặc bán cá. Tải trọng của tàu thì đảm bảo vận chuyển bất kì số cá nào đánh đƣợc. Khi di
chuyển từ cửa sông vào chỗ đánh bắt cá tàu đi ngƣợc dòng sông và tiêu tốn nguyên liệu cho một
kilomet là p đồng. Khi di chuyển xuôi dòng về hƣớng cửa sông thì tàu di chuyển không tốn nhiên
liệu. Kết thúc mùa đánh bắt lợi nhuận sẽ là tổng số tiền bán cá trừ đi chi phí nhiên liệu.
Yêu cầu: Hãy xác định lợi nhuận lớn nhất có thể nhận đƣợc.
Dữ liệu vào
 Dòng đầu tiên chứa ba số nguyên n, m và p – số lƣợng điểm đánh cá, số lƣợng cơ sở bán
buôn và chi phí nhiên liệu(1 ≤ n, m ≤ 500000; 0 ≤ p ≤ 109).
 n dòng tiếp theo chứa hai số nguyên xi và ai – khoảng cách từ cửa sông và số cá đánh bắt
tối đa ở điểm đó ( 0 < x1 < x2 < … < xn ≤ 109; 0 < ai ≤ 106).
 m dòng tiếp theo chứa ba số nguyên yj, bj, cj – khoảng cách từ cửa sông của cơ sở bán
buôn, số lƣợng tấn cá tối đa có tiếp nhận của cơ sở này và giá tiền thu mua trên một tấn của cơ sở
bán buôn (0 < y1 < y2 < … < ym ≤ 109; 0 < bj, cj ≤ 106).
Dữ liệu ra
Đƣa ra một số nguyên duy nhất – lợi nhuận lớn nhất có thể đạt đƣợc.

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

Sách Tin Học dành cho học sinh PTNK Page 61


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 62


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐẶT QUẦY PHỤC VỤ


Tí đang điều hành một tiệm thức ăn nhanh mở cửa 24/7, tiệm có nhiều quầy để phục vụ khách ăn
uống. Một hôm, bằng cách nào đó Tí biết đƣợc ngày hôm sau sẽ có khách ghé tiệm của mình.
Tí cũng biết chính xác thời điểm mà ngƣời khách thứ sẽ ghé tiệm mình là vào lúc giờ
phút . Thời gian để phục vụ cho một khách hàng là không đáng kể
nhƣng Tí hiểu rằng nếu khách đến mà thấy không còn quầy phục vụ nào trống thì khách sẽ bỏ đi.

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.

Dữ liệu: vào từ tập tin FREECASH.INP

- Dòng đầu tiên chứa số nguyên dƣơng là số khách sẽ ghé tiệm


- Dòng thứ trong dòng tiếp chứa 2 số nguyên cho biết thời điểm ngƣời khách thứ sẽ
ghé tiệm theo thứ tự thời gian.

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

Sách Tin Học dành cho học sinh PTNK Page 63


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

THỨ SÁU NGÀY 13


Hành tinh Cyberplanet sử dụng lịch cũng tƣơng tự với lịch của hành tinh chúng ta. Mỗi năm ở
Cyberplanet có tháng, mỗi tháng có đúng 30 ngày, mỗi tuần có 7 ngày và ngày không may
mắn ở đây cũng là thứ sáu ngày 13. Biết rằng ngày đầu năm mới ở hành tinh Cyberplanet là ngày
thứ trong tuần ( : thứ hai; : thứ ba, …, : chủ nhật)
Yêu cầu: hãy xác định có bao nhiêu ngày không may mắn trong năm ở Cyberplanet
Dữ liệu: vào từ tập tin văn bản FRIDAY.INP 2 số nguyên dƣơng

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

Sách Tin Học dành cho học sinh PTNK Page 64


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

Ế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

Sách Tin Học dành cho học sinh PTNK Page 65


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ẾCH ĐỘT BIẾN GEN


Cuộc sống an nhàn với thức ăn đầy đủ và đa dạng tại các đống rác thành phố đã sinh ra thế hệ
các chú ếch đột biến gen. Trên con đƣờng dẫn đến bải rác thành phố có n đống rác, đánh số bắt
đầu từ 0 đến n-1 từ trái qua phải. Đống rác thứ i có độ cao hi (i = 0 ÷ n-1, 0 < hi ≤ 109, 0 < n
≤ 106, hi – nguyên). Trên mỗi đống rác hiện có một chú ếch sống. Đến tuổi trƣởng thành, mỗi
chú ếch đều muốn đi tìm một chỗ sống tốt đẹp hơn bằng cách nhảy sang đống rác cao hơn gần
nhất bên phải. Chú ếch ở đống rác thứ i có thể thực hiện đƣơc Ji bƣớc nhảy (0 < Ji < n). Bãi
rác thành phố có độ cao lớn hơn mọi đống rác trên đƣờng. Ta ký hiệu độ cao này là -1 (vì không
cần và cũng không thể biết chính xác).

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

Sách Tin Học dành cho học sinh PTNK Page 66


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

HÀM SỐ
Cho số nguyên dƣơng , hàm số đƣợc định nghĩa nhƣ sau:

Trong đó là tổng các chữ số của . Hãy tính


Dữ liệu vào từ tập tin văn bản FUNCTION.INP số nguyên dƣơng
Kết quả ghi ra tập tin văn bản FUNCTION.OUT giá trị của
Ví dụ:
FUNCTION.INP FUNCTION.OUT
5 3

Sách Tin Học dành cho học sinh PTNK Page 67


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 68


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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 đó.

Dữ liệu: vào từ tập tin văn bản GIFTS.INP:

- Dòng đầu tiên chứa số là số học sinh tham dự


- Dòng thứ chứa 1 số nguyên là số thăm mà học sinh thứ bốc đƣợ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ách Tin Học dành cho học sinh PTNK Page 69


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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ụ:

HERONS INP HERONS.OUT


34 23

Sách Tin Học dành cho học sinh PTNK Page 70


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

BÀI TẬP VỀ NHÀ


Steve rất không thích làm bài tập ở nhà. Nhƣng trong giờ Tin học thầy giáo cho tới n bài tập về
nhà, trong đó có những bài chỉ có thể giải đƣợc sau khi làm một số bài khác.
Steve đọc đầu bài, ƣớc lƣợng thời gian giải cho từng bài và thấy rõ rằng mình không kịp làm
đƣợc hết tất cả các bài. Khi đó Steve quyết định sẽ bỏ một
bài. Hy vọng rằng nếu chỉ thiếu có một bài thầy giáo sẽ
không mắng nhiều. Vấn đề là phải chọn bài nào để lại, không
làm sao cho tổng thời gian làm các bài còn lại là nhỏ nhất.
Ví dụ, với n = 5, thời gian làm bài thứ i là i phút và các bài 2,
3 phải làm sau khi đã làm xong bài 1, bài 3 phải làm sau bài
5. Nhƣ vậy Steve có thể bỏ bài 4 và thời gian là các bài còn
lại sẽ là 1+2+3+5=11 phút.
Yêu cầu: Cho các số nguyên n, m, ti – thời gian làm bài thứ
i, i = 1 ÷ n và m cặp quan hệ dạng (a, b) cho biết bài b phải làm sau bài a. Hãy xác định thời gian
tối thiểu cần thiết để Steve thực hiện đƣợc kế hoạch của mình.
Dữ liệu: Vào từ file văn bản HOMEWORK.INP:
 Dòng đầu tiên chứa 2 số nguyên n và m (1 ≤ n ≤ 100, 0 ≤ m ≤ 1000),
 Dòng thứ 2 chứa n số nguyên t1, t2, . . ., tn (1 ≤ ti ≤ 1000, i = 1÷ n),
 Mỗi dòng trong m dòng sau chứa 2 số nguyên a và b (1 ≤ a, b ≤ n, a ≠ b).

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ách Tin Học dành cho học sinh PTNK Page 71


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Kết quả: ghi ra tập tin văn bản HPRIME.OUT

- 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

Sách Tin Học dành cho học sinh PTNK Page 72


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

- Dòng 1: Chứa số nguyên dƣơng


- dòng tiếp theo, dòng thứ chứa số nguyên , tiếp theo là số nguyên đôi một khác nhau
tƣơng ứng với số hiệu những ngƣời đƣợc ngƣời coi làm thần tƣợng

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

Sách Tin Học dành cho học sinh PTNK Page 73


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

DÃY CON ĐƠN ĐIỆU TĂNG DÀI NHẤT


Cho một dãy số nguyên gồm n phần tử a1, a2, ..., an. Biết rằng dãy con tăng đơn điệu là 1 dãy
ai1 , ai2 ,..., aik thỏa mãn i1 < i2 < ... < ik và ai1  ai2  ...  aik . Hãy cho biết dãy con tăng đơn điệu

dài nhất của dãy này có bao nhiêu phần tử.


Dữ liệu vào: Chứa trong tập tin văn bản INCSEQ.INP.
 Dòng 1 gồm 1 số nguyên là số N (1 ≤ N ≤ 105).
 Dòng thứ 2 ghi n số nguyên a1, a2, ..., an (1 ≤ ai ≤ 10000).
Dữ liệu ra: Chứa trong tập tin văn bản INCSEQ.OUT.
 In ra một số nguyên duy nhất là độ dài của dãy con tăng dài nhất.
Ví dụ:
INCSEQ.INP INCSEQ.OUT
6 4
125462

Sách Tin Học dành cho học sinh PTNK Page 74


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

TỐI GIẢN PHÂN SỐ


Cho 4 số nguyên dƣơng . Hãy tìm là tử và mẫu tối giản tƣơng
ứng của phân số tổng

Dữ liệu vào từ tập tin văn bản IRD.INP 4 số nguyên dƣơng


Kết quả ghi ra tập tin văn bản IRD.OUT 2 số nguyên dƣơng
ụ:
IRD.INP IRD.OUT
2613 23

Sách Tin Học dành cho học sinh PTNK Page 75


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 76


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 77


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

HIỆN SỐ BẰNG ĐÈN LED


Quà sinh nhật mà Mai nhận đƣợc là một máy tính bấm tay màn hình tinh thể lỏng. Màn hình có
thể hiển thị đƣợc n chữ số. Có 7 đèn LED tạo thành 7 vạch để hiển thị một chữ số. Mỗi chữ số sẽ
tƣơng ứng với một số đèn LED đƣợc kích hoạt và vạch tƣơng ứng sẽ có màu đen. Cách hiện thị
các số là nhƣ sau:

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.

Dữ liệu: vào từ tập tin văn bản LED.INP chứa 2 số nguyên và

Kết quả: ghi ra tập tin văn bản LED.OUT

- Dòng thứ nhất ghi số nguyên nhỏ nhất


- Dòng thứ hai ghi số nguyên lớn nhất
- Nếu không có nghiệm thì đƣa ra thông báo NO SOLUTION

ụ:

LED.INP LED.OUT
5 15 10117
97111

Sách Tin Học dành cho học sinh PTNK Page 78


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 79


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 80


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

THÀNH PHỐ MAY MẮN


Tháp Giga là tòa tháp cao nhất và sâu nhất thành phố Cyberland với tổng cộng có
17,777,777,777 tầng và đƣợc đánh thứ tự từ tầng -8,888,888,888 đến tầng 8,888,888,888 (có
tầng 0 nằm giữa tầng -1 và tầng 1).

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.

Dữ liệu: vào từ tập tin văn bản LUCKY.INP số nguyê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

Sách Tin Học dành cho học sinh PTNK Page 81


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

LŨY THỪA CỦA 2


Hãy tính 2n .
Dữ liệu vào từ tập tin LUYTHUA2.INP
Chứa một số tự nhiên n ≤ 10000
Dữ liệu kết quả ra tập tin LUYTHUA2.OUT
Số 2n
Ví dụ:
LUYTHUA2.INP LUYTHUA2.OUT
10 1024

Sách Tin Học dành cho học sinh PTNK Page 82


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐƯỜNG VÀNH ĐAI


Mạng lƣới giao thông trong một thành phố mới đƣợc tổ chức dƣới dạng n đƣờng vành đai và m
đƣờng trục (1 ≤ n, m ≤ 105). Mỗi đƣờng vành đai là một đƣờng tròn tâm là quảng trƣờng chính
của thành phố và có bán kính nguyên ri (1 ≤ ri ≤ 106). Mỗi đƣờng trục là một đoạn thẳng nối
một điểm ở trên đƣờng vành đai bán kính lớn nhất với
quảng trƣờng chính. Nếu đứng giữa quảng trƣờng chính và
nhìn về hƣớng đông, thì khi xoay mặt theo hƣớng ngƣợc
chiều kim đồng hồ một góc aj độ ta sẽ nhìn dọc theo
đƣờng trục thứ j. Đƣợc biết là Aj = aj×106 là một số
nguyên và 0 ≤ Aj < 360×106. Các đƣờng trục là những
đƣờng hai chiều, nhƣng xe cộ không đƣợc đi qua quảng
trƣờng chính.
Mỗi đƣờng vành đai có thể là đƣờng hai chiều (ký hiệu là
loại 0), có thể là đƣờng một chiều và đi theo chiều ngƣợc
kim đồng hồ (ký hiệu là loại 1), có thể là đƣờng một chiều
và đi theo chiều kim đồng hồ (ký hiệu là loại -1).
Yêu cầu: Hãy xác định độ dài đƣờng đi ngắn nhất từ giao
của đƣờng vành đai p với đƣờng trục q tới giao của đƣờng
vành đai u với đƣờng trục v.
Dữ liệu: Vào từ file văn bản MAGISTRALS.INP:
 Dòng đầu tiên chứa 2 số nguyên n và m,
 Mỗi dòng trong n dòng sau chứa 2 số nguyên bán kính và loại đƣờng vành đai,
 Dòng thứ j trong m dòng tiếp theo chứa số nguyên Aj,
 Dòng thứ n+m+2 chứa 2 số nguyên p và q,
 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 MAGISTRALS.OUT một số thực – độ dài đƣờng đi ngắn nhất tìm
đƣợc với độ chính xác 4 chữ số sau dấu chấm thập phân.
Ví dụ:
MAGISTRALS.INP MAGISTRALS.OUT
3 4 12.9956
1 0
7 1
8 -1
0
90000000
180000000
270000000
3 1
3 2

Sách Tin Học dành cho học sinh PTNK Page 83


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

CÁC THỎI NAM CHÂM


Nhà khoa học lập dị Mike đã nghĩ ra trò sắp các quân cờ domino để tiêu khiển nhƣng Mike lại
không có bộ cờ domino nên đã thay bằng các thanh nam châm. Mỗi thanh nam châm đều có 2
cực dƣơng (+) và âm (-). Nếu 2 thanh nam châm đặt gần nhau thì các cực cùng dấu sẽ đẩy nhau
và các cực trái dấu sẽ hút nhau.

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

- Dòng đầu chứa số nguyên dƣơng .


- Dòng thứ trong dòng tiếp theo, mỗi dòng chứa 2 số 0, 1 mô tả cho 2 đầu của thanh nam
châm thứ . 0 tƣơng ứng với cực âm, 1 tƣơng ứng cực 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

Sách Tin Học dành cho học sinh PTNK Page 84


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

TẦN SỐ XUẤT HIỆN NHIỀU NHẤT


Cho dãy số nguyên , hãy cho biết giá trị xuất hiện nhiều nhất dãy.
Dữ liệu: vào từ tập tin văn bản MAXFREQ.INP

- Dòng 1 chứa số nguyên dƣơng


- Dòng thứ trong dòng tiếp theo chứa số nguyên

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

Sách Tin Học dành cho học sinh PTNK Page 85


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

DƯA HẤU Ở CÁNH ĐỒNG KỲ DIỆU

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

Sách Tin Học dành cho học sinh PTNK Page 86


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 87


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 88


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 89


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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.

Hình bên ứng với trƣờng hợp w = h = 5, n = 2, hình chữ


nhật thứ nhất đƣợc xác định bởi cặp điểm (1, 1) và (3, 3),
hình chữ nhật thứ 2 – cặp điểm (2, 4) và (4, 2).

Phần vải còn để mộc (chƣa bị tô) có diện tích là 18.

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.

Dữ liệu: Vào từ file văn bản MOSAIC.INP:


 Dòng đầu tiên chứa 2 số nguyên w và h,
 Dòng thứ 2 chứa số nguyên n,
 Dòng thứ i trong n dòng còn lại chứa 4 số nguyên x1i, y1i, x2i và y2i.

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

Sách Tin Học dành cho học sinh PTNK Page 90


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

ĐẶT THÁP PHÕNG THỦ Ở CÁC NGỌN NÖI


Chính phủ Việt Nam lên kế hoạch xây dựng ở vùng đồi núi tại biên giới với các pháo đài phòng
thủ để bảo vệ chủ quyền toàn vẹn lãnh thổ. Dãy núi trong vùng này là dãy đứt gãy cấu tạo từ n
liên kết liên tiếp nhau kết nối n+1 đỉnh. Các đỉnh này đánh số từ 0 đến n theo thứ tự tăng dần
hoành độ x. Các liên kết đƣợc đánh số từ 1 đến n trong đó liên kết i nối các đỉnh i-1 và i.
Đỉnh số 0 nằm ở điểm có tọa độ là (0, 0). Liên kết thứ i đƣợc đƣa ra bởi hai số di – độ dài hình
chiếu trên trục Ox và ki – hệ số góc. Nhƣ vậy, nếu đỉnh với i-1 có các tọa độ (xi-1, yi-1) thì tọa độ
đỉnh i có thể đƣợc tính là (xi-1+di, yi-1+ki.di). Đỉnh cuối cùng nằm trên trục Ox có nghĩa là yn = 0.

Đ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.

Sách Tin Học dành cho học sinh PTNK Page 91


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

 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

Sách Tin Học dành cho học sinh PTNK Page 92


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 93


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

Ví dụ 2

Ví dụ 3

Sách Tin Học dành cho học sinh PTNK Page 94


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

Ví dụ 4

Sách Tin Học dành cho học sinh PTNK Page 95


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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

Sách Tin Học dành cho học sinh PTNK Page 96


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

NGÔN NGỮ MUMBA

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

Sách Tin Học dành cho học sinh PTNK Page 97


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

CÁCH TIẾP THEO


Có nhiều cách biểu diễn một số nguyên n thành tổng các số nguyên dƣơng. Ví dụ, với n = 5 ta
có 7 cách biểu diễn:
5 = 1 + 1 + 1 + 1 + 1
5 = 1 + 1 + 1 + 2
5 = 1 + 1 + 3
5 = 1 + 2 + 2
5 = 1 + 4
5 = 2 + 3
5 = 5
Các cách biểu diễn đƣợc liệt kê theo thứ tự từ điển tăng dần và các toán hạng cũng dẫn xuất theo
thứ tự tăng dần.
Yêu cầu: Cho một cách phân tích số nguyên n ( 1 ≤ n ≤ 100 000). Hãy xác định cách phân tích
tiếp theo theo thứ tự từ điển hoặc thông báo No solution nếu không tồn tại cách tiếp theo.
Dữ liệu: Vào từ file văn bản NEXT_M.INP gồm một dòng chứa cách phân tích (xem ví dụ).
Kết quả: Đƣa ra file văn bản NEXT_M.OUT cách phân tích tìm đƣợc hoặc thông báo No
solution.

Ví dụ:
NEXT_M.INP NEXT_M.OUT

5=1+1+3 5=1+2+2

Sách Tin Học dành cho học sinh PTNK Page 98


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

KHÔNG ĐƠN GIẢN


Không phải cứ ngắn gọn là dễ! Bạn có thể kiểm chứng điều đó ở bài toán sau: Cho 3 số nguyên
A, B, C (1 ≤ A, B, C ≤ 1018). Hãy tìm số dƣ khi chia AB cho C.

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

Sách Tin Học dành cho học sinh PTNK Page 99


Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

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ị
.

Dữ liệu: vào từ tập tin văn bản NUMFRE.INP chứa 2 số .

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

TRÕ CHƠI VỚI DÃY SỐ


Tí rất thích môn Số học nên thƣờng nghĩ ra các câu đố có liên quan đến những con số để đố Tèo
là em trai mình. Lần này Tí có số nguyên dƣơng , cậu ta đố em trai thực hiện các
thao tác sau trên dãy số:

- Chọn 2 số bất kỳ có giá trị khác nhau trong dãy


- Giảm giá trị của số lớn hơn đi một đại lƣợng bằng giá trị của số nhỏ hơn còn lại.

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ó.

Dữ liệu vào từ tập tin văn bản NUMQUIZ.INP

- Dòng đầu chứa số nguyên dƣơng


- 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 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

LUYỆN TẬP DỰ THI HỌC SINH GIỎI


Để chuẩn bị cho kỳ thi học sinh giỏi môn tin học, thầy giáo ra bài tập đƣợc
đánh số từ 1 đến . Mỗi bài tập nhằm rèn luyện một số kỹ năng nào đó.
Nhằm định hƣớng cho quá trình tự luyện tập đƣợc hiệu quả, mỗi bài tập có một yêu cầu tối thiểu
về trình độ kỹ năng. Để giải đƣợc bài thứ , học sinh cần có trình độ kỹ năng tối thiểu là . Điều
này có nghĩa là học sinh có thể giải đƣợc bài thứ khi và chỉ khi có trình độ kỹ năng bằng hoặc
lớn hơn . Nếu giải đƣợc bài thứ trình độ kỹ năng của học sinh sẽ tăng thêm một lƣợng là
. Giả sử ban đầu trình độ kỹ năng của học sinh trƣớc khi làm bài tập là
. Các bài tập có thể đƣợc làm theo trình tự bất kỳ tùy chọn.
Ví dụ, với trình độ kỹ năng ban đầu là và các giá trị tƣơng ứng là (1, 10), (21,
5), (1, 10), (100, 100), học sinh sẽ giải bài 1, sau đó làm bài 3 và cuối cùng làm bài 2. Nhƣ vậy
học sinh sẽ giải đƣợc tất cả 3 bài.
Yêu cầu: cho các số nguyên và cặp giá trị . Hãy xác định số lƣợng bài tối đa có thể
đƣợc giải.
Dữ liệu: vào từ tập tin văn bản OLYMPIC.INP có cấu trúc nhƣ sau:

- Dòng đầu tiên chứa 2 số nguyên


- Dòng thứ trong dòng tiếp theo chứa 2 số nguyên

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)

Trong đó là phép toán XOR.


Để thu hút sự tập trung của khán giả hiệu quả hơn nữa, sau khi đƣa ra số kỳ diệu của mảng nhà
ảo thuật thực hiện q lần hành động nhƣ sau. Ông ấy đề nghị khán giả thay đổi một phần tử của
mảng và sau đó lại đƣa ra số kỳ diệu. Về việc này nhà lập trình có nhiều số kỳ diệu và mỗi lần
đƣa ra cho khán giả số kỳ diệu nhỏ nhất. Thỉnh thoảng nhà ảo thuật làm khản giả giảm hứng thú
vì không tìm đƣợc số kỳ diệu.
Yêu cầu viết chƣơng trình từ mảng cho trƣớc và sau mỗi lần thay đổi phần tử của mảng hãy tìm
số kỳ diệu cho mảng này hoặc thông báo không tìm đƣợc.
Chú ý:
Lệnh XOR – là lệnh logic ký hiệu có bảng chân trị nhƣ sau:
x y x y
0 0 0
0 1 1
1 0 1
1 1 0

Ví dụ: 5 22 = 1012 101102 = 100112 = 19.


Dữ liệu vào từ file văn bản ORDER.INP
 Dòng đầu tiên chứa số nguyên n số lƣợng phần tử trong mảng (1 ≤ n ≤ 106).
 Dòng thứ hai chứa n số nguyên a1, a2,…,an – các phần tử của
mảng (0 ≤ ai < 230).

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).

Dữ liệu ra file văn bản ORDER.OUT


 Đƣa ra (q + 1) số nguyên b0, b1, b2,…,bq cùng trên một dòng.
 Giá trị b0 – hoặc là số kỳ diệu của mảng hoặc là -1 nếu không tồn tại số kỳ diệu đối với
mảng này.
 Đối với i từ 1 đến q giá trị bi – hoặc là số kỳ diệu của mảng sau i lần đầu thay đổi hoặc -1
nếu không tồn tại số kỳ diệu đối với mảng này.

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.

Dữ liệu: vào từ tập tin văn bản PARK.INP có dạng:

- Dòng đầu chứa một số nguyên dƣơng


- dòng tiếp theo, mỗi dòng chứa số hiệu của một chiếc xe

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

DÕ TÌM MẬT KHẨU


Phòng thí nghiệm của trung tâm công nghệ cao đƣợc trang bị khá nhiều thiết bị máy móc hiện
đại phục vụ cho công việc nghiên cứu. Các cửa ra vào đều đƣợc trang bị hệ thống nhận dạng thẻ
từ hiện đại. Tuy nhiên, các nhà nghiên cứu thƣờng là những ngƣời đãng trí nên họ hay để quên
hoặc làm rớt thẻ từ.
Mặc dù các nhà nghiên cứu hay đãng trí nhƣng họ rất thông minh và giỏi lập trình nên giám đốc
liền nghĩ ra một cách thức nhận dạng mới mà không cần dùng đến thẻ từ. Trƣớc mỗi cửa ra vào,
giám đốc cho thiết kế một bảng điện tử cứ sau mỗi giây sẽ hiển thị 1 dãy hàng ngang gồm rất
nhiều số nguyên dƣơng. Mật khẩu để mở cửa chính là chuỗi số đƣợc tạo thành bằng cách ghép
cặp số ở 2 vị trí khác nhau theo đúng thứ tự xuất hiện của chúng trong dãy thỏa điều kiện tổng
các chữ số của cặp số này là khác nhau và lệch nhau nhỏ nhất. Nếu trong dãy tồn tại nhiều cặp
phần tử nhƣ thế thì chọn cặp phần tử trái nhất.
Ví dụ dãy số hiển thị trên bảng nhƣ sau:
Dãy số 75 305 19 221 43 1592 36
Giá trị tổng các chữ số 12 8 10 5 7 20 9

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ể.

Dữ liệu: vào từ tập tin văn bản PASSWORD.INP:

- Dòng đầu ghi số nguyên dƣơng


- Dòng tiếp theo ghi số nguyên là các số hiển thị trên bảng điện
tử
- Dữ liệu đƣợc cho đảm bảo tồn tại ít nhất 2 phần tử có tổng các chữ số là khác nhau

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

GIỜ THỂ DỤC


Trƣờng có nhiều lớp nhƣng chỉ có một thầy giáo thể dục, vì vậy có giờ n lớp phải học chung.
Trên sân tập học sinh mỗi lớp xếp thành một hàng dọc, nam nữ đan xen nhau theo trình tự bất
kỳ. Với nhiều hàng rất khó làm việc vì vậy thầy giáo chọn một hàng làm đầu, sau đó chỉ định
từng lớp đứng tiếp vào cuối hàng. Khi hàng lớp mình gắn vào hàng chung, các học sinh mỗi lớp
không thay đổi vị trí của mình trong hàng ban đầu.
Sau khi nhận đƣợc một hàng duy nhất, thầy giáo yêu cầu các học sinh đếm từ đầu đến cuối:
ngƣời thứ nhất hô: “Một”, ngƣời thứ 2 hô: “Hai”, ngƣời tiếp theo – “Một”, tiếp theo nữa – “Hai”,
cứ nhƣ vậy cho đến ngƣời cuối cùng. Tất cả những ngƣời số 1 sẽ chơi bóng đá, những ngƣời số 2
– chơi bóng chuyền.
Các bạn nam thích bóng đá hơn, còn nữ thì không, vì vậy thầy giáo luôn tìm cách tạo ra hàng sao
cho số học sinh nam đƣợc chơi bóng đá là nhiều nhất.
Hãy xác định số học sinh nam nhiều nhất đƣợc chơi bóng đá.
Dữ liệu: Vào từ file văn bản PHYSED.INP:
 Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 105),
 Mỗi dòng trong n dòng sau chứa xâu không rỗng độ dài không quá 100 bao gồm các ký
tự từ tập {B, G}, trong B là nam, G là nữ, xác định dòng xếp hàng của một lớp.

Tổng số lƣợng học sinh không quá 106.


Kết quả: Đƣa ra file văn bản PHYSED.OUT một số nguyên – số nhiều nhất học sinh nam đƣợc
chơi bóng đá.
Ví dụ:

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

THỰC NGHIỆM KỸ THUẬT ROBOT


Trƣờng đại học Tatarstan là một trung tâm hàng đầu về kỹ thuật robot. Để giới
thiệu ngành học này cho các em học sinh phổ thông, trung tâm này đƣa ra một thực
nghiệm robot trong một không gian giới hạn. Thực nghiệm đƣợc tiến hành trên
một hình chữ nhật kích thƣớc ô vuông. Lúc bắt đầu thực nghiệm trong một
số ô cho trƣớc, đặt một robot chƣa đƣợc kích hoạt. Khi lệnh "Start" đƣợc ấn, thời
gian tín hiệu truyền trong mỗi giây. Sau mỗi tín hiệu thời gian nhƣng không chậm
hơn giây sau lệnh "Start", cho phép kích hoạt một vài robot. Mỗi ô trong hình
chữ nhật đƣợc sơn một trong bốn màu mà cảm biến của robot có thể nhận biết.
Màu sắc cho phép robot di chuyển từ ô của mình sang các ô kề bên: hƣớng bắc,
hƣớng nam, hƣớng đông, hoặc hƣớng tây. Ở mỗi thời điểm, mỗi robot đƣợc kích
hoạt di chuyển sang các ô kề tƣơng ứng với màu sắc mà ô nó đang đứng. Tất cả
robot kích hoạt đƣợc di chuyển đồng thời. Màu sắc đƣợc chọn lựa sao cho khi di
chuyển không có robot nào ra khỏi hình chữ nhật. Để tránh tình trạng xung đột, các
robot không đi vào ô của nhau mà va đập nhau. Va đập là khi hai hay nhiều robot
vào cùng một ô. Nếu xảy ra va đập thì thực nghiệm coi nhƣ thất bại. Thực nghiệm
thành công là khi cho tất cả robot di chuyển không va đập bao lâu cũng đƣợc. Kết
quả thực nghiệm là số lƣợng robot đƣợc kích hoạt.
Yêu cầu: Viết chƣơng trình kích hoạt giúp các em học sinh với hình chữ nhật, các
ô, trong đó đặt trƣớc các robot chƣa kích hoạt, hãy xác định số lƣợng kết quả lớn
nhất, và nếu yêu cầu cụ thể các robot nào và tại thời điểm thời gian nào đƣợc kích
hoạt để đạt đƣợc kết quả.
Dữ liệu vào
 Dòng đầu tiên viết các số nguyên và , trong đó là kích thƣớc của
hình chữ nhật từ bắc xuống nam và từ tây sang đông ( , còn -
dấu hiệu hoặc , kí hiệu cần thiết xác định ô và thời điểm kích hoạt robot.

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

Ta gọi giá trị của bảng trên bằng

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

THAM QUAN THÀNH PHỐ


Bờm lần đầu tiên đƣợc tham quan khu trung tâm lớn nhất của thành phố Megacity. Khu trung
tâm xây dựng nhiều con đƣờng nối từ Bắc xuống Nam và từ Đông sang Tây. Các con đƣờng
đƣợc đánh thứ tự từ 1 trở đi, bắt đầu từ góc dƣới bên trái (hình minh họa)

Bờm đang đứng tại


giao lộ của 2 con
đƣờng và và N

cậu ta muốn đến


W E
khu trung tâm mua
sắm nằm tại giao lộ S
của 2 con đƣờng
và . Chẳng hạn
Bờm đang đứng tại giao lộ của 2 con đƣờng và , khu trung tâm mua sắm nằm tại
giao lộ và . Bờm có thể đi 1 đoạn về hƣớng Nam (S), 3 đoạn về hƣớng Đông (E)
và 1 đoạn về hƣớng Nam (một đoạn đƣợc tính bắt đầu từ một giao lộ đến một giao lộ liền kề trên
cùng hƣớng đi) hoặc một lộ trình khác là 2 đoạn về hƣớng Nam (S), 1 đoạn về hƣớng Đông (E),
1 đoạn về hƣớng Bắc (N), 2 đoạn về hƣớng Đông (E), 1 đoạn về hƣớng Nam (S).

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 ...

Yêu cầu: Cho số nguyên dƣơng n. Hãy xác định an (1 ≤ n ≤ 1012).


Dữ liệu: Vào từ file văn bản SEQUENCE.INP gồm nhiều tests, mỗi test cho trên một dòng chứa
một số nguyên n.
Kết quả: Đƣa ra file văn bản SEQUENCE.OUT, kết quả mỗi test đƣa ra trên một dòng.
Ví dụ:
SEQUENCE.INP SEQUENCE.OUT
1 1
12 77

Sách Tin Học dành cho học sinh PTNK Page 127
Tiến sĩ Đào Duy Nam PTNK – ĐHQG TPHCM

CÁC MÁY CHỦ Ở SAO THỦY


Hệ thống máy tính điều khiển bởi các trạm ở Sao Thủy gồm có n máy chủ đƣợc đánh số từ 1 đến
n. Các máy chủ nối bởi ( n - 1 ) kênh liên lạc hai chiều, kênh thứ i nối máy chủ thứ i và máy chủ
thứ ( i +1 ).
Từ trái đất cần gửi một gói dữ liệu phần mềm mới đến hệ thống máy tính điều khiển. Gói dữ liệu
cần cài đặt trên mỗi máy chủ. Chi phí chuyển gói dữ liệu mới từ Trái đất đến Sao Thủy rất đắt, vì
thế từ Trái đất gói dữ liệu mới đƣợc chuyển tới chỉ một máy chủ mà thôi. Sau đó gói dữ liệu cần
chuyển đến tất cả máy chủ còn lại theo kênh liên lạc và có thể thông qua các máy chủ khác.
Do bức xạ Mặt trời trên Sao Thủy cao nên chỉ có thể chuyển gói dữ liệu theo các kênh liên lạc
trong một vài khoảng thời gian. Đối với kênh thứ i có khoảng thời gian [ li, ri ] là thời gian có thể
chuyển gói dữ liệu trên kênh này. Gói dữ liệu đƣợc chuyển theo bất kỳ kênh liên lạc nào ngay
lập tức.
Gói dữ liệu đƣợc chuyển đến máy chủ thứ j, nhanh chóng đƣợc cài đặt và đƣợc đặt vào bộ đệm
đặt biệt của bộ nhớ từ đó nó có thể đƣợc chuyển đến các máy chủ khác. Gói dữ liệu nằm ở bộ
đệm bộ nhớ máy chủ thứ j trong khoảng thời gian tj giây từ thời điểm nó nhận đƣợc gói dữ liệu.
Nếu ở thời điểm tìm gói dữ liệu trong bộ đệm bộ nhớ máy chủ đƣợc cho phép chuyển nó theo
kênh liên lạc đến máy chủ kế bên, trong khi gói dữ liệu chƣa đƣợc cài đặt thì nó nhanh chóng
đƣợc chuyển theo kênh liên lạc này.
Kể từ khi gói dữ liệu chứa các dữ liệu mới quan trọng, cần bắt đầu phổ biến nó nhƣ trƣớc đây.
Yêu cầu: Viết chƣơng trình đối với tất cả i từ 1 đến n xác định có thể cài đặt gói dữ liệu mới trên
tất cả máy chủ chuyển dữ liệu từ Trái đất đến máy chủ thứ i đƣợc hay không? Nếu có thể thì cần
xác định thời gian nhỏ nhất có thể cài đặt gói dữ liệu trên máy chủ này để kết quả gói dữ liệu
đƣợc cài đặt trên tất cả các máy chủ.
Dữ liệu vào
 Dòng đầu tiên chứa số nguyên n ( 200000) – số lƣợng các máy chủ.
 Dòng thứ hai chứa n số nguyên t1, t2, …, tn, trong đó tj – thời gian tìm thấy gói dữ liệu
trong bộ đệm bộ nhớ của máy chủ thứ j ( 0 ≤ tj ≤ 109).
 Tiếp theo ( n – 1) dòng viết các kênh liên lạc. Đối với kênh liên lạc thứ i đƣa ra hai số
nguyên li và ri – các biên khoảng thời gian trải dài mà có thể chuyển gói dữ liệu theo kênh này
( 0 ≤ li ≤ ri ≤ 109 ).

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Ả ĐẸP


Steve hào hứng theo dõi kết quả tất cả các kỳ thi lập trình. Với Steve, bảng công bố kết quả
online cũng hấp dẫn không kém nội dung các bài thi.
Thông tin trên bảng kết quả đƣợc sắp xếp theo thứ tự giảm dần số bài mà mỗi đội giải đƣợc.
Steve coi một bảng kết quả là đẹp nếu số bài giải đƣợc của mỗi độ hoặc bằng 0 hoặc là ƣớc của
tổng số bài trong kỳ thi. Khi một đội giải đƣợc thêm một bài nào đó thì số lƣợng tƣơng ứng trên
bảng sẽ tăng thêm một. Không có đội nào tại một thời điểm đồng thời giải xong quá một bài, hệ
thống cũng không ghi nhận đồng thời kết quả của hai hay nhiều đội.
Hiện nay bảng đang có trạng thái đẹp. Ví dụ, với số đội tham gia là 7, có 12 bài trong kỳ thi và
kết quả hiện tại là (12, 6, 4, 3, 3, 1, 0). Nếu đội ở vị trí thứ 4 hoặc thứ 5 giải thêm một bài bảng
vẫn đẹp. Tƣơng tự nhƣ vậy, đội thứ 6 có thể giải thêm 1, 2 hoặc 3 bài, còn đội đang đứng cuối có
thể giải thêm đƣợc 1, 2, 3, 4 bài - bảng vẫn đẹp. Tóm lại có 9 trƣờng hợp có bài đƣợc giải thêm
mà bảng vẫn ở trạng thái đẹp.
Yêu cầu: Cho n,m – số đội tham gia và số bài phải giải (1 ≤ n ≤ 100, 1 ≤ m ≤ 109), cho kết quả
số bài giải đƣợc của mỗi đội (theo thứ tự không giảm) tạo thành một bảng đẹp. Hãy xác định số
lần thay đổi trạng thái liên tiếp tối đa mà bảng kết quả vẫn đẹp.
Dữ liệu: Vào từ file văn bản STANDING.INP:
 Dòng đầu tiên chứa 2 số nguyên n và m,
 Dòng thứ 2 chứa n số nguyên – số bài giải đƣợc của mỗi đội.

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.

Dữ liệu ra file văn bản STORAGE.OUT


 Dữ liệu ra chứa q dòng , trong đó dòng thứ i là <<Yes>> nếu từ dãy trạng thái si có thể
biến đổi ra dãy ti, hoặc <<No>> trong trƣờng hợp ngƣợc lại.

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.

Kết quả: Đƣa ra file văn bản SUM.OUT:


 Dòng đầu tiên chứa số nguyên k – số lƣợng cặp số tìm đƣợc,
 Mỗi dòng trong k dòng sau chứa một cặp số nguyên a, b.

Các cặp số đƣa ra theo thứ tự tăng dần của a.

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

CHÌA KHÓA TAM GIÁC


Indiana Jon tìm thấy chìa khóa mở cửa hang động chứa kho báu của ngƣời Inka. Chìa khóa có
hình tam giác đều. Tam giác đều này đƣợc chia thành n2 tam
giác đều con, trên mỗi tam giác con này có khắc một chữ số hệ
10. Hình bên nêu ví dụ một khóa ứng với n = 3.
Jon ấn chìa khóa vào lỗ hình tam giá chìm trên cửa động và . . .
cửa không mở! Rõ ràng là anh đã đặt chìa không đúng hƣớng.
Còn hai cách đặt khác nữa: quay chìa ngƣợc chiều kim đồng hồ
hoặc cùng chiều kim đồng hồ. Jon chỉ còn đủ thời gian để thử
một lần nữa. Những ngƣời Inca đã đuổi sát tới nơi. Jon thoáng
suy nghĩ, quay chìa và ấn lại. Thật may mắn, cửa mở và Jon kịp
nhào thoát vào trong động. Tim vẫn còn đập nhƣ giã gạo, nhƣng
Jon phải tìm cách nhớ lại ngay
cấu hình chìa khóa khi mở.
Thông tin này sẽ giúp ích rất
nhiều trong các bƣớc tiếp theo.
Hình bên là cấu hình khóa khi
quay ngƣợc chiều kim đồng hồ
và quay cùng chiều kim đồng hồ.
Cho biết n, cấu hình của chìa
khóa và chiều quay đã thực hiện
(counterclockwise – ngƣợc chiều
kim đồng hồ hoặc clockwise –
cùng chiều kim đồng hồ). Hãy xác định cấu hình khóa đã mở cửa.
Dữ liệu: Vào từ file văn bản TRIANGLE.INP:
 Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 100),
 Dòng thứ i trong n dòng sau chứa 2≤i-1 chữ số xác định dòng thứ i của chìa khóa
(i =1 ÷ n),
 Dòng cuối cùng chứa xâu xác định chiều quay.

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

- Dòng đầu tiên chứ 2 số nguyên


- Dòng thứ hai chứa số nguyên

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

MẠNG GIAO THÔNG


Đế chế hùng mạnh thứ IV của ngân hà bao gồm n hành tinh. Hội đồng điều hành quyết định xây
dựng n-1 ống giao thông, mỗi ống nối 2 hành tinh. Mạng giao thông phải đảm bảo giữa 2 hành
tinh bất kỳ của Đế chế có đƣờng đi (trực tiếp hoặc qua các hành tinh khác). Nếu (xa, ya, za) và
(xb, yb, zb) là tọa độ không gian của 2 hành tinh A và B thì chi phí xây dựng đƣờng ống giao
thông giữa 2 hành tinh này sẽ là

min{|xa – xb|, |ya – yb|, |za – zb|}


Yêu cầu: Cho n và tọa độ của các hành tinh (các tọa độ đều nguyên và có giá trị tuyệt đối không
quá 109, 2 ≤ n ≤ 106). Không có 2 hành tinh nào ở cùng một điểm. Hãy xác định chi phí nhỏ nhất
xây dựng mạng giao thông.

Dữ liệu: Vào từ file văn bản TUNEL.INP:


 Dòng đầu tiên chứa số nguyên n,
 Mỗi dòng trong n dòng sau chứa 3 số nguyên – tọa độ một hành tinh.

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

ĐIỀU KHIỂN MÁY QUAY PHIM


Một cơ quan bảo vệ nhận đƣợc một đơn đặt hàng đảm bảo quan sát hai tòa nhà. Mỗi một tòa nhà
đƣợc thiết lập một tập hợp nhiều máy quay phim.
Trên mỗi bức tƣờng của phòng quan sát đặt một tấm bảng, là một hình chữ nhật hình thành từ n
dãy nằm ngang gồm m màn hình. Mỗi màn hình đƣa ra hình ảnh từ máy quay phim nằm một
trong hai tòa nhà. Phòng quan sát đƣợc trang bị các nút điều khiển với bốn nút “trái,“phải”,
“trên” và “dƣới”.
Nút “trái” di chuyển hình ảnh từ mỗi màn hình đến màn hình nằm bên trái nó. Trong đó hình ảnh
từ màn hình bên trái nhất của mỗi dãy đƣợc di chuyển sang màn hình bên phải nhất của dãy này.
Tƣơng tự nhƣ vậy tác dụng của các nút “phải”, “trên” và “dƣới”. Nút “phải” di chuyển hình ảnh
từ mỗi màn hình sang màn hình nằm bên phải nó. Hình ảnh từ màn hình bên phải nhất trong mỗi
dãy đƣợc di chuyển đến màn hình bên trái nhất của dãy này. Nút “trên” di chuyển hình ảnh từ
mỗi màn hình đến màn hình bên trên nó. Hình ảnh của mỗi màn hình bên trên cùng đƣợc di
chuyển đến các màn hình nằm dƣới cùng. Nút “dƣới” di chuyển hình ảnh từ mỗi màn hình đến
các màn hình nằm bên dƣới nó. Hình ảnh từ mỗi màn hình nằm dƣới cùng của dãy đƣợc di
chuyển lên các màn hình trên cùng của dãy đó.
Gọi block màn hình kích thƣớc 2x2 là thuận tiện để quan sát nếu nhƣ các màn hình này đƣa ra
các hình ảnh từ cùng một tòa nhà. Trong kết quả di chuyển hình ảnh theo các lệnh từ nút điều
khiển thì số lƣợng các block quan sát thuận tiện có thể bị thay đổi. Trong đó một màn hình có thể
đi vào một vài block quan sát thuận tiện.
Yêu cầu viết chƣơng trình xác định số lƣợng lớn nhất số block quan sát thuận tiện có thể nhận
đƣợc nhờ điều khiển các màn hình từ các nút điều khiển.
Dữ liệu vào từ file văn bản VIDEO.INP
 Dòng đầu tiên chứa hai số nguyên n số lƣợng dãy và m là số lƣợng màn hình ở mỗi dãy
(2 ≤ n, m ≤ 1000).
 Tiếp theo là n dòng viết các dãy màn hình theo thứ tự từ trên xuống dƣới. Mỗi dòng của
các dòng này chứa m kí hiệu, viết tƣơng ứng với các màn hình theo thứ tự từ trái sang phải. Kí
hiệu <<1>> có ý nghĩa màn hình từ tòa nhà đầu tiên, còn kí hiệu <<2>> là từ tòa nhà thứ hai.

Dữ liệu ra file văn bản VIDEO.OUT


 Một số nguyên duy nhất – số lƣợng lớn nhất các block thuận tiện để quan sát.

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

PHÉP TÍNH XOR


Nội dung bài giảng tin học hôm nay là lệnh XOR – lệnh cộng từng bít không nhớ. Ví dụ 3 XOR 5 = 6
( 310 = 112, 510 = 1012  3 XOR 5 = 1102 = 610). Bài tập về nhà cũng không đến nổi quá khó: cho n số
nguyên không âm khác nhau từng đôi một ai và m số nguyên không âm bj. Với mỗi số bj hãy tìm ak sao
cho ak XOR bj = max{ai XOR bj |i=1  n}.
Dữ liệu: Vào từ file văn bản XOR_OP.INP:
 Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 105),
 Dòng thứ 2 chứa n số nguyên a1, a2, . . ., an (0 ≤ ai ≤ 109, i = 1 ÷ n),
 Dòng thứ 3 chứa số nguyên m (1 ≤ m ≤ 105),
 Dòng thứ 4 chứa m số nguyên b1, b2, . . ., bm (0 ≤ bj ≤ 109, j = 1 ÷ m).

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:

- “black” nếu số ô màu đen nhiều hơn,


- “white” nếu số ô màu trắng nhiều hơn,
- “equal” nếu số ô của 2 màu là nhƣ nhau.

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

- Dòng đầu tiên chứa 2 số nguyên và


- Dòng thứ trong dòng tiếp theo chứa số nguyên

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

You might also like