PHÒNG GIÁO DỤC LẬP THẠCH
--------------------------
TT
Tên bài
Bài
1
Bài
2
Bài
3
Phần tử yên
ngựa
Sắp xếp xâu
Số Nasty
ĐỀ THI KHẢO SÁT HSG NĂM HỌC 2017 - 2018
ĐỀ THI MƠN: TIN HỌC
Thời gian làm bài: 150 phút, khơng kể thời gian giao đề.
(Đề thi có 02 trang, gồm 03 bài)
---------------------------------------------------------------TỔNG QUAN BÀI THI
File chương
File dữ liệu
trình
vào
BAI1.PAS
BAI1.INP
File dữ liệu
ra
BAI1.OUT
BAI2.PAS
BAI2.INP
BAI2.OUT
BAI3.PAS
BAI3.INP
BAI3.OUT
Hãy lập trình giải các bài tốn sau:
Bài 1: PHẦN TỬ YÊN NGỰA (3.0 điểm)
Cho bảng số nguyên gồm M hàng, N cột. Một phần tử trong bảng số được gọi là phần
tử yên ngựa nếu phần tử đó đồng thời là phần tử nhỏ nhất hàng và lớn nhất cột hoặc đồng thời
là phần tử lớn nhất hàng và nhỏ nhất cột.
Yêu cầu: Cho một bảng gồm M hàng, N cột các số nguyên, cho biết trong bảng có bao nhiêu
phần tử yên ngựa.
Dữ liệu vào: Gồm M+1 dòng:
Dòng thứ nhất: Hai số nguyên dương M, N
M hàng tiếp theo, mỗi hàng chứa N số nguyên
Dữ liệu ra: Một chữ số duy nhất là số lượng phần tử n ngựa có trong bảng.
Ví dụ:
Input
Output
35
2
35678
03626
12345
Bài 2: SẮP XẾP XÂU (4.0 điểm)
Cho một xâu kí tự S gồm các kí tự chữ cái và chữ số. Một “số” trong S là dãy liên tiếp
các kí tự chữ số được giới hạn hai đầu bởi các kí tự chữ cái hoặc đầu xâu hay cuối xâu. Mỗi
“số” có độ dài khơng quá 255 kí tự chữ số.
Ví dụ: Với xâu S là:
baygiola07gio30phutngay29thang10nam2017
Ta có các số là: 7; 30; 29; 10; 2017.
Những chữ số 0 ở đầu các “số” trong xâu sẽ tự động cắt bỏ khi sắp xếp. Ví dụ 07 chỉ tính
là 7; 007 cũng chỉ tính là 7.
Hãy sắp xếp lại các số trong xâu S thành dãy không giảm, giữ nguyên trật tự của các kí
tự chữ cái.
Dữ liệu vào: Gồm một dòng duy nhất là xâu S có độ dài khơng q 20000 ký tự.
Dữ liệu ra: Gồm một dòng duy nhất là xâu S sau khi đã sắp xếp.
Ví dụ:
Input
baygiola07gio30phutngay29thang10nam2017
Output
baygiola7gio10phutngay29thang30nam201
7
Bài 3: SỐ NASTY (3.0 điểm)
Một số nguyên dương được gọi là “Nasty” nếu nó có ít nhất hai cặp thừa số nguyên
dương khác nhau là ước của số đó mà sự chênh lệch giữa các thừa số của một cặp bằng tổng
của các thừa số của cặp còn lại.
Ví dụ:
6 là số Nasty vì: 6x1 = 6; 2x3 = 6 và 6-1 = 2+3.
24 là số Nasty vì: 12x2 = 24; 6x4 = 24 và 12-2 = 6+4.
Yêu cầu: Viết chương trình nhận một danh sách gồm N số nguyên dương và xác định mỗi số
trong danh sách đó là Nasty hay khơng phải Nasty.
Dữ liệu vào: Gồm N+1 dòng
Dòng đầu tiên ghi số nguyên dương N
N dòng tiếp theo, mỗi dòng ghi một số nguyên dương
Dữ liệu ra: Gồm N dòng, dòng thứ i ghi số 1 nếu số thứ i là Nasty và số 0 nếu số thứ i không
phải là Nasty
Giới hạn: 1 < N < 1000.
Ví dụ:
Input
Output
3
0
9
1
6
1
24
---------- Hết ---------Thí sinh khơng được sử dụng tài liệu
Cán bộ coi thi không được giải thích gì thêm.