
-1-
SỞ GIÁO DỤC VÀ ĐÀO TẠO
HẢI DƯƠNG
-------- --------
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH LỚP 12 THPT
NĂM HỌC 2018-2019
MÔN: TIN HỌC
Thời gian làm bài: 180 phút (không kể thời gian giao đề)
(Đề thi gồm 3 trang)
Tổng quan về các bài thi trong đề:
TT
Tên bài
Tên file
chương trình
Dữ liệu
vào
Dữ liệu ra
Thời gian
chạy 1 test
Điểm
1
Đền bù
BAI1.*
bàn phím
màn hình
1s
2,5
2
Điểm mười
BAI2.*
bàn phím
màn hình
1s
2,5
3
Xây thành
BAI3.*
bàn phím
màn hình
1s
2,0
4
Cấp số cộng
BAI4.*
BAI4.INP
BAI4.OUT
1s
1,5
5
Tìm max
BAI5.*
BAI5.INP
BAI5.OUT
1s
1,5
Yêu cầu các thí sinh đọc kỹ phần hướng dẫn dưới đây:
Dấu (*) trong tên file chương trình được thay thế bằng PAS, C hoặc CPP tuỳ theo thí sinh
viết chương trình bằng ngôn ngữ Pascal, C hoặc C++
Chương trình chỉ in kết quả theo yêu cầu của đề bài, không in bất kỳ thông tin nào khác
Đối với các bài tập đọc và in dữ liệu từ file văn bản, tên các file này phải đặt đúng theo
yêu cầu đề bài, không có đường dẫn phía trước.
Viết chương trình giải các bài toán sau:
Bài 1. Đền bù
Trong việc thu hồi đất của dân để phục vụ cho việc làm đường nông thôn. Ngoài việc
đền bù đất thì chính quyền còn đền bù cây ăn quả trên đất. Việc đền bù cây ăn quả trên đất
được thực hiện theo định mức sau: Mỗi cây ăn quả cao từ 1 mét trở xuống là a, mỗi cây ăn
quả cao trên 1 mét và dưới 2,5 mét là b, từ 2,5 mét trở lên là c. Một hộ dân có n cây ăn quả
trên đất thu hồi, trong đó có m cây dưới 2,5 mét, k cây từ 1 mét trở xuống.
Bạn hãy giúp chính quyền tính xem phải đền bù cho hộ nông dân đó số tiền là bao
nhiêu.
Dữ liệu: Nhập từ bàn phím 6 số nguyên dương theo thứ tự a, b, c, k, m, n (a, b, c≤100,
0≤k,m,n≤10000, k+m≤n)
Kết quả: Ghi ra màn hình một số nguyên duy nhất là tổng số tiền mà chính quyền phải
đền bù cho hộ nông dân trên.
Ví dụ:
Dữ liệu nhập
Kết quả in ra
3
5
7
5
15
30
160
Ghi chú: Bài được chấm qua 10 test, mỗi test đúng được 0,25 điểm
ĐỀ THI CHÍNH THỨC

-2-
Bài 2. Điểm mười
Sau kì thi vào 10 của một trường THPT, Ban Giám hiệu muốn biết có bao nhiêu điểm
10 môn Toán? Bạn hãy viết một chương trình giúp Ban Giám hiệu làm điều này.
Dữ liệu:Nhập vào từ bàn phím các giá trị theo thứ tự sau:
Đầu tiên là số nguyên dương n (n≤106) là số lượng học sinh dự thi
Tiếp theo là n số thực không âm (có giá trị không vượt quá 10) lần lượt là điểm môn
Toán của n học sinh
Kết quả: Ghi ra màn hình duy nhất một số nguyên là số lượng điểm 10
Ví dụ:
Dữ liệu nhập
Kết quả in ra
4
9.8
10
10
8.0
2
Ghi chú: Bài được chấm qua 10 test, mỗi test đúng được 0,25 điểm
Bài 3. Xây thành
Để đảm bảo an ninh chống lại sự tấn công của kẻ xâm lăng, Vua An Dương Vương
quyết định cho xây dựng các thành luỹ quanh các điểm dân cư đông đúc. Theo lời khuyên
của Rùa thần, tên của các thành luỹ phải được chọn là một xâu con các kí tự liên tiếp nhau
của tên Rùa thần. Tên của Rùa thần là một xâu ký tự Q chỉ gồm các chữ cái tiếng Anh in
hoa. Ví dụ, nếu Q là ‘ABAB’ thì tên của thành luỹ có thể là : ’A’, ‘B’, ‘AB’, ‘BA’, ‘ABA’,
‘BAB’, ’ABAB’ (Chú ý là các tên khác nhau phải là các dãy ký tự khác nhau). Nhà
Vua muốn biết là có thể xây dựng được tối đa bao nhiêu thành luỹ dựa vào số tên có thể
đặt.
Dữ liệu: Nhập từ bàn phím một dòng chứa xâu ký tự Q, trong đó chỉ có các chữ cái
tiếng Anh in hoa và có độ dài không quá 255.
Kết quả: In ra màn hình duy nhất một số nguyên dương là số lượng tên khác nhau.
Ví dụ:
Dữ liệu nhập
Kết quả in ra
ABAB
7
Ghi chú: Bài được chấm qua 8 test, mỗi test đúng được 0,25 điểm
Bài 4. Cấp số cộng
Trong toán học, một cấp số cộng là một dãy số, trong đó kể từ số hạng thứ hai, mỗi số
hạng đều là tổng của số hạng đứng ngay trước nó với một số không đổi gọi là công
sai. Chẳng hạn, dãy số 3, 5, 7, 9, 11 là một cấp số cộng với các phân tử liên tiếp với công
sai là 2.
Cho dãy số nguyên a1, a2, …, an. Ta định nghĩa một dãy con là dãy nhận được từ dãy
trên bằng cách bỏ đi một số phần tử (có thể bằng 0) và giữ nguyên thứ tự các phần tử còn
lại.

-3-
Yêu cầu: Cho dãy n số nguyên a1, a2, …, an và giá trị công sai d cho trước. Hãy tìm dãy
con dài nhất của dãy trên lập thành một cấp số cộng với công sai d (các phần tử có thể ở
vị trí bất kì trong dãy). Để đơn giản ta chỉ cần tìm số lượng phần tử của dãy con này.
Dữ liệu: Vào từ file văn bản BAI4.INP
Dòng đầu tiên ghi số nguyên dương n (n ≤ 105 ) và giá trị công sai d (0≤d≤100)
Dòng thứ hai ghi n số nguyên a1, a2, …, an (1≤ai≤106). Hai số liên tiếp ghi cách nhau
ít nhất một dấu cách
Kết quả: Ghi ra file văn bản BAI4.OUT một số nguyên duy nhất là kết quả tìm được.
Ví dụ:
BAI4.INP
BAI4.OUT
10 3
1 2 4 7 8 10 8 12 13 16
6
Giải thích: Dãy con dài nhất của dãy 10 phần tử trên thành lập cấp số cộng công sai 3 gồm 6
phần tử là: 1, 4, 7, 10, 13, 16
Ghi chú: Kết quả được chấm qua 6 test, mỗi test đúng được 0,25 điểm, trong đó:
2 test có n≤500
2 test có n≤5000
2 test có n≤105
Bài 5. Tìm max
Nam và Trang rất thích những bài toán liên quan đến con số. Trong một lần Nam đố
Trang: Bạn hãy chọn cho mình hai số nguyên dương bất kỳ n và m (2 ≤ n, m ≤ 109) mình
sẽ tính ra được số nguyên dương k lớn nhất sao cho n!=123...n chia hết cho mk. Trang
không tin và nghĩ ra các con số để thử Nam. Hãy viết chương trình giúp Trang kiểm tra
xem Nam tính kết quả có chính xác không nhé.
Dữ liệu: Nhập từ file văn bản BAI5.INP, gồm một dòng duy nhất chứa 2 số nguyên
dương N, M cách nhau một dấu cách.
Kết quả: In ra file văn bản BAI5.OUT số nguyên K tìm được.
Ví dụ:
BAI5.INP
BAI5.OUT
6 6
2
Chú ý: Kết quả được chấm qua 6 test, mỗi test đúng được 0,25 điểm:
2 test có 𝑛 ≤ 10, 𝑚 ≤ 1000
2 test có 𝑛 ≤ 500, m là số nguyên tố
1 test có 𝑛 ≤ 109, m≤106
1 test có 𝑛 ≤ 109, m≤109
..............................HẾT..................................
- Thí sinh không được sử dụng tài liệu
- Giám thị không giải thích gì thêm
Họ và tên thí sinh:............................................................ Số báo danh:............................................
Chữ ký của giám thị 1:......................................Chữ ký của giám thị 2:............................................

