SỞ GIÁO DỤC VÀ ĐÀO TẠO<br />
SÓC TRĂNG<br />
<br />
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH<br />
Năm học 2015-2016<br />
<br />
Đề chính thức<br />
<br />
Môn: Tin học - Lớp 12<br />
(Thời gian làm bài 180 phút, không kể phát đề)<br />
Ngày thi: 27/9/2015<br />
________________<br />
Đề thi này có 02 trang<br />
TỔNG QUAN NGÀY THI THỨ HAI<br />
Tên câu<br />
<br />
File chương trình<br />
<br />
File dữ liệu vào<br />
<br />
File kết quả<br />
<br />
Câu 1 Đoạn không giảm<br />
<br />
DoanMax.*<br />
<br />
DoanMax.inp<br />
<br />
DoanMax.out<br />
<br />
Câu 2 Tổng hàng lẻ<br />
<br />
TongHangLe.*<br />
<br />
TongHangLe.inp<br />
<br />
TongHangLe.out<br />
<br />
Câu 3 Dãy con K<br />
<br />
DayConK.*<br />
<br />
DayConK.inp<br />
<br />
DayConK.out<br />
<br />
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<br />
là Pascal hoặc C++. Lưu ý: Yêu cầu đặt tên file giống bảng trên.<br />
Hãy lập trình giải các câu hỏi sau:<br />
Câu 1: (6,0 điểm) Đoạn không giảm<br />
Cho dãy gồm N số nguyên (1 N 20000). Tìm đoạn không giảm có chiều dài lớn<br />
nhất. (đoạn không giảm phải chứa các phần tử liên tục)<br />
Dữ liệu vào trong tập tin văn bản DoanMax.inp<br />
- Dòng 1: số nguyên N (1 N 20000).<br />
- Dòng thứ 2: các phần tử của dãy, các phần tử này cách nhau bằng khoảng trắng.<br />
Kết quả xuất ra tập tin văn bản DoanMax.out<br />
- Dòng 1: chứa chỉ số bắt đầu đoạn.<br />
- Dòng 2: chứa số phần tử trong đoạn (chiều dài đoạn).<br />
Ví dụ :<br />
DoanMax.inp<br />
12<br />
7 5 15 1 3 3 3 5 7 9 5 2<br />
<br />
DoanMax.out<br />
Vi tri bat dau cua doan: 4<br />
So phan tu trong doan: 7<br />
<br />
Câu 2: (7,0 điểm) Tổng hàng lẻ<br />
Cho một ma trận M x N số nguyên (M, N ≤ 200). Hãy tính tổng số lẻ của từng hàng<br />
ma trận, sau đó sắp xếp giảm dần theo các giá trị tổng đó.<br />
Dữ liệu vào trong tập tin văn bản TongHangLe.inp<br />
- Dòng 1: chứa 2 số nguyên M, N cách nhau bởi khoảng trắng.<br />
- M dòng tiếp theo chứa M hàng ma trận gồm N số nguyên, các số cách nhau bằng<br />
khoảng trắng.<br />
Kết quả xuất ra tập tin văn bản TongHangLe.out<br />
- Dòng 1: chứa số nguyên M.<br />
<br />
- M dòng tiếp theo chứa M tổng các số lẻ của M hàng.<br />
- Dòng cuối cùng chứa tổng M số được sắp xếp giảm dần của tổng M hàng, các số<br />
cách nhau bằng khoảng trắng.<br />
Ví dụ:<br />
TongHangLe.inp<br />
54<br />
3 2 -1 5<br />
5 7 -8 10<br />
-4 -3 1 3<br />
2 -4 -1 7<br />
-5 1 13 -5<br />
<br />
TongHangLe.out<br />
Tong cua 5 hang<br />
Tong hang thu 1 = 7<br />
Tong hang thu 2 = 12<br />
Tong hang thu 3 = 1<br />
Tong hang thu 4 = 6<br />
Tong hang thu 5 = 4<br />
Tong cac so giam dan: 12 7 6 4 1<br />
<br />
Câu 3: (7,0 điểm) Dãy con K<br />
Cho một dãy A gồm N số nguyên dương (1 ≤ N ≤ 1000) có dạng A1, A2, …, AN và<br />
số nguyên dương K (K ≤ 1000). Hãy tìm dãy con gồm nhiều phần tử nhất của dãy đã cho<br />
sao cho tổng các phần tử của dãy con này chia hết cho K. (dãy con tìm được có thể chứa các<br />
phần tử không liên tục trong dãy đã cho)<br />
Dữ liệu vào trong tập tin văn bản DayConK.inp<br />
- Dòng 1: N, K cách nhau bằng khoảng trắng.<br />
- Dòng 2: chứa N số A1, A2, …, AN cách nhau bằng khoảng trắng.<br />
Kết quả xuất ra tập tin văn bản DayConK.out<br />
- Dòng 1: số lượng phần tử tìm được.<br />
- Các dòng tiếp ghi các phần tử được chọn vào dãy con.<br />
- Dòng cuối ghi tổng các phần tử của dãy con đó.<br />
Ví dụ:<br />
DayConK.inp<br />
10 7<br />
1 9 11 5 10 21 7 2 4 8<br />
<br />
DayConK.out<br />
So luong phan tu tim duoc: 9<br />
A[1] = 1<br />
A[2] = 9<br />
A[3] = 11<br />
A[4] = 5<br />
A[5] = 10<br />
A[6] = 21<br />
A[7] = 7<br />
A[8] = 2<br />
A[9] = 4<br />
Tong cac phan tu cua day tim duoc: 70<br />
<br />
--- HẾT --Họ tên thí sinh: ................................................................Số báo danh: ................................<br />
Chữ ký của Giám thị 1: ..................................Chữ ký của Giám thị 2:.................................<br />
<br />