You are on page 1of 2

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 tương
ứng là Pascal hoặc C++. Yêu cầu đặt tên file giống 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: Có hai số nguyên dương A và B, cần tạo ra số C
bằng cách ghép các chữ số của A và B sao cho thứ tự các chữ số của A và 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: vào từ tập tin văn bản GhepSo.inp: gồm một dòng duy nhất có 2 số nguyên
dương A và B, với 1 ≤ A, B ≤ 108, dữ liệu đảm bảo không có các chữ số 0 vô nghĩa 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 So A = 28 va so B = 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 là tổng khối lượng các thành viên trong hai đội có sự chênh lệch là ít nhất và số thà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 là một số nguyên dương N (2 ≤ N ≤ 100) là 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 có giá trị trong
khoảng [20..150].
1
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 và 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 2 100
30 3 110
70
20
50
40

Câu 3: (7,0 điểm) Tách chuỗi đối xứng


Chuỗi đối xứng (palindrome) là chuỗi mà 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 có thể tách được từ các chuỗi đối xứng. Ví 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 là các chuỗi đối xứng. Bạn hãy tì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 là chuỗi đối xứng Pi. Nếu có 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 4
madambobseesanna 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: ..................................

You might also like