1
SỞ GIÁO DỤC VÀ ĐÀO TẠO THI CHỌN ĐỘI TUYỂN HỌC SINH GIỎI QUỐC GIA
SÓC TRĂNG Năm 2018
¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯
ĐỀ CHÍNH THỨC
Môn: TIN HỌC
(Thời gian làm bài 180 phút, không kể phát đề)
¯¯¯¯¯¯¯¯¯¯¯¯
Ngày thi thứ nhất: 15/9/2017
Đề thi này có 02 trang, gồm 03 câu
TỔNG QUAN NGÀY THI THỨ NHẤT
Câu
Tên câu
File chương trình
File dữ liệu vào
File kết quả
1
Ghép số nguyên dương
C1GhepSo.*
GhepSo.inp
GhepSo.out
2
Trò chơi kéo co
C2KeoCo.*
KeoCo.inp
KeoCo.out
3
Tách chuỗi đối xứng
C3TachCDX.*
TachCDX.inp
TachCDX.out
Dấu * được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình được sử dụng ơng
ứng Pascal hoặc C++. u cầu đặt n file ging bảng trên.
Hãy lập trình giải các câu hỏi sau:
Câu 1: (6,0 điểm) Ghép số nguyên dương
Trong giờ ra chơi Bi đố Bo như sau:hai số nguyên dương A B, cần tạo ra số C
bằng cách ghép các chữ số của A B sao cho thứ tự các chữ số của A B không thay đổi
trên số C. Bạn hãy giúp Bo xây dựng số C sau đó tìm giá trị nhỏ nhất và lớn nhất của số C.
Dữ liệu: o từ tập tin n bản GhepSo.inp: gồm một ng duy nhất 2 số nguyên
ơng A và B, với 1 ≤ A, B 108, dữ liệu đảm bảo không các chsố 0 vô nga của A và B.
Kết quả: ghi ra tập tin văn bản GhepSo.out: gồm
- Dòng thứ nhất ghi giá trị của số A và số B.
- Dòng thứ hai ghi giá trị nhỏ nhất của số C.
- Dòng thứ ba ghi giá trị lớn nhất của số C.
Ví dụ:
GhepSo.inp
GhepSo.out
28 41
Gia tri nho nhat cua so C: 2418
Gia tri lon nhat cua so C: 4281
Câu 2: (7,0 điểm) Trò chơi kéo co
Trong buổi sinh hoạt ngoài trời, thầy chủ nhiệm chia học sinh thành hai đội để chơi
kéo co. Bạn hãy giúp thầy tìm cách chia hai đội sao cho công bằng nhất theo cả hai điều
kiện tổng khối lượng các thành viên trong hai đội sự chênh lệch ít nhất sthành
viên của hai đội chênh lệch nhau không quá 1 người.
Dữ liệu: vào từ tập tin văn bản KeoCo.inp: gồm
- Dòng đầu một số nguyên dương N (2 ≤ N ≤ 100) số học sinh trong lớp.
- N dòng tiếp theo cho biết khối lượng của từng học sinh, khối lượng giá trị trong
khoảng [20..150].
2
Kết quả: ghi ra tập tin văn bản KeoCo.out: hai dòng được sắp xếp không giảm theo
tổng khối lượng mỗi đội, mỗi dòng thể hiện tổng số thành viên khối lượng của mỗi đội.
Nếu có nhiều cách chia thì in ra 1 cách chia bất kì.
Ví dụ:
KeoCo.inp
KeoCo.out
5
30
70
20
50
40
2 100
3 110
Câu 3: (7,0 điểm) Tách chuỗi đối xứng
Chuỗi đối xứng (palindrome) chuỗi nếu ta đọc từ trái sang phải hay từ phải
sang trái thì đều giống nhau. Ví dụ chuỗi 'xyzyx' là chuỗi đối xứng. Một ký tự duy nhất cũng
được gọi là chuỗi đối xứng.
Một chuỗi S bất k luôn thể tách được từ các chuỗi đối xứng. dụ chuỗi
madambobseesanna có một số cách tách như sau:
1) ‘m’ + ‘a’ + ‘d’ + ‘a’ + ‘m’+ ‘b’ + ‘o’ + ‘b’ + ‘s’ + ‘e’ + ‘e’ + ‘s’ + ‘a’ + ‘n’ + ‘n’ + ‘a’
2) ‘madam’ + ‘bob + sees + anna
3) ‘madam’ + ‘bob + s + ee + s + anna
4) ‘m’ + ‘ada’ + ‘m’ + ‘b’ + ‘o’ + ‘b’ + ‘sees’ + ‘anna’
Tổng quát S = P1 + P2 +...+ Pk, với P1, P2,... , Pk các chuỗi đối xứng. Bạn y m
cách biểu diễn S sao cho k là bé nhất. Trong ví dụ trên k = 4 (cách tách số 2).
Dữ liệu: vào từ tập tin văn bản TachCDX.inp:
- Dòng thứ nhất là số nguyên N (1 ≤ N ≤ 2000) biểu thị chiều dài chuỗi S.
- Dòng thứ hai là chuỗi S gồm N ký tự là các chữ cái la tinh thường từ ‘a đến ‘z.
Kết quả: ghi ra tập tin văn bản TachCDX.out:
- Dòng thứ nhất là số nguyên k.
- Trong k dòng tiếp theo, tại dòng thứ i chuỗi đối xứng Pi. Nếu nhiều cách biểu
diễn, chỉ cần in ra một cách bất kỳ.
Ví dụ:
TachCDX.inp
TachCDX.out
16
madambobseesanna
4
madam
bob
sees
anna
--- HẾT ---
Họ tên thí sinh: ................................................Số báo danh: ..................................................
Chữ ký của Giám thị 1: .................................. Chữ ký của Giám thị 2: ..................................