Số M được gọi là “Số hạnh phúc” nếu K là một số chẵn và tổng một nửa các chữ số bên trái của M bằng tổng một nửa các chữ số bên phải của M.. Dữ liệu vào: Ghi trong file văn bản HAPPYNUM.
Trang 1SỞ GD&ĐT QUẢNG BÌNH KÌ THI CHỌN HSG TỈNH NĂM HỌC 2013-2014
Khóa thi ngày 28 - 3 - 2014
LỚP 11 THPT - VÒNG I
Họ và tên: ……… Thời gian: 180 phút (không kể thời gian giao đề)
Số báo danh: ……… ………. Đề gồm có 02 trang
ĐỀ RA
Sử dụng ngôn ngữ lập trình Turbo Pascal để lập trình giải các bài toán sau:
Cho số nguyên dương M có K chữ số (2 ≤ K ≤ 200)
Số M được gọi là “Số hạnh phúc” nếu K là một số chẵn và tổng một nửa các chữ số bên trái của M bằng tổng một nửa các chữ số bên phải của M
Yêu cầu: Hãy kiểm tra M có phải là “Số hạnh phúc” hay không.
Dữ liệu vào: Ghi trong file văn bản HAPPYNUM.INP có cấu trúc như sau:
Dữ liệu ra: Ghi ra file văn bản HAPPYNUM.OUT theo cấu trúc như sau:
“Số hạnh phúc” thì ghi số 0
Ví dụ:
HAPPYNUM.INP HAPPYNUM.OUT HAPPYNUM.INP HAPPYNUM.OUT 8
67423484
1725
0
Câu 2: (3,5 điểm) Dãy số đối xứng PALIN.PAS
Một dãy số nguyên dương B gồm k số b1, b2, , bk được gọi là dãy đối xứng nếu ta đọc giá trị các số của dãy B theo thứ tự từ trái sang phải cũng giống như đọc giá trị các số của dãy B theo thứ tự từ phải sang trái
Cho dãy số nguyên dương A gồm N số a1, a2, , aN
(1 ≤ N ≤ 10000, 1 ≤ i ≤ N, 1 ≤ ai ≤ 32000)
Yêu cầu: Hãy tạo ra dãy B bằng cách lấy các số liên tiếp trong dãy A sao cho dãy B
là dãy đối xứng và có nhiều số nhất
Dữ liệu vào: Ghi trong file văn bản PALIN.INP có cấu trúc như sau:
- Dòng 2: Ghi N số nguyên dương lần lượt là giá trị của các số trong dãy A, các số được ghi cách nhau ít nhất một dấu cách
Dữ liệu ra: Ghi ra file văn bản PALIN.OUT theo cấu trúc như sau:
- Dòng 1: Ghi số nguyên K là số lượng các số của dãy B
- Dòng 2: Ghi K số nguyên dương lần lượt là giá trị của các số trong dãy B, các số được ghi cách nhau một dấu cách
ThuVienDeThi.com
Trang 2Ví dụ:
PALIN.INP PALIN.OUT 8
2 3 4 5 4 3 1 7
5
3 4 5 4 3
Câu 3: (3,5 điểm) Các đoạn trên trục số LINES.PAS
Hai đoạn [a, b] và [c, d] được gọi là hai đoạn gối nhau nếu xếp chúng trên cùng một trục số thì điểm đầu của đoạn này trùng với điểm cuối của đoạn kia, tức là c = b hoặc a = d (a < b và c < d)
Cho N đoạn trên cùng một trục số được đánh chỉ số từ 1 đến N Đoạn thứ i có điểm đầu ai và điểm cuối bi(1 ≤ N ≤ 1000, 1 ≤ i ≤ N, -32000 ≤ ai, bi≤ 32000)
Yêu cầu: Hãy tìm các đoạn gối nhau liên tiếp trên trục số sao cho số lượng đoạn gối
nhau là lớn nhất
Dữ liệu vào: Ghi trong file văn bản LINES.INP có cấu trúc như sau:
- Dòng thứ i trong N dòng tiếp theo: Ghi hai số nguyên ai và bitương ứng là điểm đầu
và điểm cuối của đoạn thứ i, hai số được ghi cách nhau ít nhất một dấu cách
Dữ liệu ra: Ghi ra file văn bản LINES.OUT theo cấu trúc như sau:
- Dòng 1: Ghi số nguyên K là số lượng đoạn gối nhau tìm được
- Dòng 2: Ghi K số nguyên lần lượt là chỉ số ban đầu của các đoạn gối nhau theo thứ
tự từ trái sang phải trên trục số, các số được ghi cách nhau một dấu cách
Ví dụ:
5
2 7
3 4
7 9
1 3
4 5
3
4 2 5
(Có 55% số test với N ≤ 100; 45% số test với N >100).
Hết
ThuVienDeThi.com