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ố t[r]
(1)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 180 phút, không kể phát đề) ¯¯¯¯¯¯¯¯¯¯¯¯
Ngày thi thứ nhất: 15/9/2017 Đề thi 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 liệu vào File kết
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 * thay PAS CPP ngôn ngữ lập trình sử dụng tương ứng Pascal C++ Yêu cầu đặt tên file giống bảng
Hãy lập trình giải câu hỏi sau: Câu 1: (6,0 điểm) Ghép số nguyên dương
Trong chơi Bi đố Bo sau: Có hai số nguyên dương A B, cần tạo số C cách ghép chữ số A B cho thứ tự chữ số A B không thay đổi số C Bạn giúp Bo xây dựng số C sau tìm giá trị nhỏ lớn số C
Dữ liệu: vào từ tập tin văn GhepSo.inp: gồm dịng có số ngun dương A B, với ≤ A, B ≤ 108, liệu đảm bảo khơng có chữ số vô nghĩa A B
Kết quả: ghi tập tin văn GhepSo.out: gồm - Dòng thứ ghi giá trị số A số B - Dòng thứ hai ghi giá trị nhỏ số C - Dòng thứ ba ghi giá trị lớn 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 trời, thầy chủ nhiệm chia học sinh thành hai đội để chơi kéo co Bạn giúp thầy tìm cách chia hai đội cho công theo hai điều kiện tổng khối lượng thành viên hai đội có chênh lệch số thành viên hai đội chênh lệch không người
Dữ liệu: vào từ tập tin văn KeoCo.inp: gồm
- Dòng đầu số nguyên dương N (2 ≤ N ≤ 100) số học sinh lớp
(2)2 Kết quả: ghi tập tin văn KeoCo.out: hai dòng xếp không giảm theo tổng khối lượng đội, dòng thể tổng số thành viên khối lượng đội Nếu có nhiều cách chia in cách chia
Ví dụ: KeoCo.inp KeoCo.out
5 30 70 20 50 40
2 100 110
Câu 3: (7,0 điểm) Tách chuỗi đối xứng
Chuỗi đối xứng (palindrome) chuỗi mà ta đọc từ trái sang phải hay từ phải sang trái giống Ví dụ chuỗi 'xyzyx' chuỗi đối xứng Một ký tự gọi chuỗi đối xứng
Một chuỗi S ln tách từ chuỗi đối xứng Ví dụ chuỗi ‘madambobseesanna’ có số cách tách 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 chuỗi đối xứng Bạn tìm
cách biểu diễn S cho k bé Trong ví dụ k = (cách tách số 2) Dữ liệu: vào từ tập tin văn TachCDX.inp:
- Dòng thứ số nguyên N (1 ≤ N ≤ 2000) biểu thị chiều dài chuỗi S
- Dòng thứ hai chuỗi S gồm N ký tự chữ la tinh thường từ ‘a’ đến ‘z’ Kết quả: ghi tập tin văn TachCDX.out:
- Dòng thứ số nguyên k
- Trong k dòng tiếp theo, dòng thứ i chuỗi đối xứng Pi Nếu có nhiều cách biểu
diễn, cần in cách
Ví dụ: TachCDX.inp TachCDX.out
16
madambobseesanna
4 madam bob sees anna - HẾT -