SỞ 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 ĐỀ CHÍNH THỨC Môn: Tin học 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: Câu 1: (3,0 điểm) Số hạnh phúc HAPPYNUM.PAS 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òng 1: Ghi số nguyên dương K. - Dòng 2: Ghi số nguyên dương M. Dữ liệu ra: Ghi ra file văn bản HAPPYNUM.OUT theo cấu trúc như sau: - Dòng 1: Nếu M là “Số hạnh phúc” thì ghi số 1 còn nếu M không phải là “Số hạnh phúc” thì ghi số 0. Ví dụ: HAPPYNUM.INP HAPPYNUM.OUT HAPPYNUM.INP HAPPYNUM.OUT 8 67423484 1 4 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 1: Ghi số nguyên dương N. - 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. Ví 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 1: Ghi số nguyên dương N. - Dòng thứ i trong N dòng tiếp theo: Ghi hai số nguyên ai và bi tươ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ụ: LINES.INP LINES.OUT 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 .......
Tài liệu đính kèm: