HSG lớp 9 Quảng Nam 2020-2021
SỞ GIÁO DỤC VÀ ĐÀO TẠO
QUẢNG NAM
ĐỀ CHÍNH THỨC
(Đề thi gồm 04 trang)
KỲ THI HỌC SINH GIỎI LỚP 9 CẤP TỈNH
Năm học 2020 - 2021
Môn thi: Tin học - Ngày thi: 10/4/2021
Thời gian: 150 phút (không kể thời gian giao đề)
Tổng quan về đề thi
Phần tiêu đề “Tổng quan về đề thi”| Tên bài | Tên file chương trình | Dữ liệu vào | Dữ liệu ra | Thời gian |
|---|---|---|---|---|
| Bài 1: Chia quà | CHIAQUA.* |
CHIAQUA.INP |
CHIAQUA.OUT |
1s |
| Bài 2: Mã số nhân viên | CODE.* |
CODE.INP |
CODE.OUT |
1s |
| Bài 3: Xâu đối xứng | XAUDX.* |
XAUDX.INP |
XAUDX.OUT |
1s |
| Bài 4: Ốc sên ăn rau | OCSEN.* |
OCSEN.INP |
OCSEN.OUT |
1s |
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 là Free Pascal hoặc C++.
Bài 1. Chia quà (5 điểm)
Phần tiêu đề “Bài 1. Chia quà (5 điểm)”Nhân dịp đi siêu thị cùng mẹ, Hằng đã mua M quả táo về làm quà cho hai người bạn thân là Nga và Trang. Mỗi quả táo có trọng lượng là 100g hoặc 200g. Hằng muốn chia đều M quả táo trên thành hai phần có trọng lượng bằng nhau để chia cho hai bạn vì khi mua Hằng quên kiểm tra điều này.
Yêu cầu: Theo em, Hằng có thể chia M quả táo trên thành hai phần có trọng lượng bằng nhau được không?
Dữ liệu vào: Từ tệp văn bản CHIAQUA.INP gồm:
- Dòng thứ nhất là số nguyên M (1 ≤ M ≤ 10⁶);
- Dòng thứ hai gồm M số nguyên a₁, a₂, …, a_M là trọng lượng của các quả táo mà Hằng đã mua và mỗi số nguyên aᵢ cách nhau một khoảng trắng (dữ liệu vào đảm bảo chỉ có hai trường hợp aᵢ = 100 hoặc aᵢ = 200).
Dữ liệu ra: Ghi ra tệp văn bản CHIAQUA.OUT: Nếu Hằng có thể chia được thì thông
báo là YES, còn nếu không chia được thì thông báo là NO.
Ví dụ:
| CHIAQUA.INP | CHIAQUA.OUT |
|---|---|
3100 200 100 |
YES |
4100 100 100 200 |
NO |
Bài 2. Mã số nhân viên (5 điểm)
Phần tiêu đề “Bài 2. Mã số nhân viên (5 điểm)”Tổng Giám đốc công ty Hoa Hồng nổi tiếng là người rất cẩn trọng. Ông ta thực hiện việc quản lí nhân viên bằng cách gán cho mỗi nhân viên một mã số. Công ty có N nhân viên thì mỗi nhân viên i (i = 1, 2, …, N) đều có một mã số hoàn toàn khác nhau. Do bận đi công tác một thời gian dài nên ông ta giao lại quyền quản lí cho trợ lý của ông. Khi ông trở về, công ty đã có sự thay đổi số lượng nhân viên. Vì vậy, khi tiếp nhận thêm nhân viên mới, ông ta muốn biết mã số lớn nhất để gán cho nhân viên mới.
Yêu cầu: Hãy tìm mã số lớn nhất chưa xuất hiện trong N mã số đã cho.
Dữ liệu vào: Từ tệp văn bản CODE.INP gồm:
- Dòng thứ nhất ghi số nguyên dương N là số lượng nhân viên (1 < N ≤ 10⁶);
- N dòng tiếp theo, dòng thứ i ghi số aᵢ (i = 1, 2, …, N; |aᵢ| ≤ 10⁹).
Dữ liệu ra: Ghi ra tệp văn bản CODE.OUT gồm một số duy nhất là mã số tìm được.
Ví dụ:
| CODE.INP | CODE.OUT |
|---|---|
6742613 |
5 |
Ràng buộc:
- Sub1: Có 50% test tương ứng 50% số điểm của bài với N ≤ 100 và |aᵢ| ≤ 10³;
- Sub2: Có 30% test tương ứng 30% số điểm của bài với N ≤ 1000 và |aᵢ| ≤ 10⁶;
- Sub3: Có 20% test tương ứng 20% số điểm còn lại của bài với N ≤ 10⁶ và |aᵢ| ≤ 10⁹.
Bài 3. Xâu đối xứng (5 điểm)
Phần tiêu đề “Bài 3. Xâu đối xứng (5 điểm)”Cho một xâu ST (độ dài không quá 2×10³ kí tự) chứa ít nhất một chữ cái in hoa (‘A’ … ‘Z’) hoặc một chữ cái thường (‘a’ … ‘z’) hoặc chữ số (‘0’ … ‘9’).
Yêu cầu: Hãy tìm độ dài của xâu con đối xứng dài nhất.
Một xâu được gọi là đối xứng nếu nó không có ít hơn một kí tự và nếu đọc từ trái sang phải hay từ phải sang trái đều giống nhau.
Ví dụ: ‘B’; ‘TOT’; ‘BAILIAB’ là các xâu đối xứng. ‘HOCBAI’ là xâu không đối xứng.
Dữ liệu vào: Từ tệp văn bản XAUDX.INP gồm một xâu ST.
Dữ liệu ra: Ghi ra tệp văn bản XAUDX.OUT gồm một số duy nhất là độ dài của xâu con
đối xứng dài nhất.
Ví dụ:
| XAUDX.INP | XAUDX.OUT |
|---|---|
ABFGHIKLMLKIHGH |
11 |
Ràng buộc: Với N là độ dài của xâu ST
- Sub1: Có 60% test tương ứng 60% số điểm của bài với N < 255;
- Sub2: Có 40% test khác tương ứng 40% số điểm còn lại của bài với N ≤ 2×10³.
Bài 4. Ốc sên ăn rau (5 điểm)
Phần tiêu đề “Bài 4. Ốc sên ăn rau (5 điểm)”Một khu vườn hình chữ nhật có kích thước N×M (N dòng, M cột). Ta đánh số các dòng từ 1 đến N theo chiều từ trên xuống dưới và các cột từ 1 đến M theo chiều từ trái sang phải để chia khu vườn thành các ô. Trong các ô đó, ngoài những ô là đất để người nông dân trồng rau vẫn có những ô là đá không thể trồng rau được. Một chú ốc sên xuất phát tại ô (x, y) (x là vị trí dòng, y là vị trí cột). Nếu ô xuất phát là đất, chú ốc sên có thể di chuyển sang 4 ô kề cạnh với ô đó (bên trái, bên phải, bên trên, bên dưới) và đương nhiên không thể di chuyển vào ô đá được. Trường hợp ô xuất phát là đá thì chú ốc sên không thể di chuyển đến ô nào khác.
Yêu cầu: Hãy tính xem chú ốc sên có thể di chuyển đến nhiều nhất là bao nhiêu ô để ăn rau?
Dữ liệu vào: Từ tệp văn bản OCSEN.INP gồm:
- Dòng thứ nhất gồm 4 số nguyên N, M, X, Y (mỗi số cách nhau một khoảng trắng) (1 ≤ X ≤ N ≤ 2000, 1 ≤ Y ≤ M ≤ 2000);
- Trong N dòng tiếp theo, mỗi dòng gồm M số nguyên 0 hoặc 1 (mỗi số cách nhau một khoảng trắng). Số 0 nghĩa là ô trồng rau, số 1 nghĩa là ô đá.
Dữ liệu ra: Ghi ra tệp văn bản OCSEN.OUT gồm một số nguyên là số lượng ô lớn nhất
mà chú ốc sên có thể di chuyển đến để ăn rau. Nếu chú ốc sên không ăn được ô rau nào
thì ghi kết quả là −1.
Ví dụ:
| OCSEN.INP | OCSEN.OUT |
|---|---|
4 5 2 40 0 1 0 00 1 0 0 11 0 0 0 00 1 0 0 1 |
10 |
Ràng buộc:
- Sub1: Có 50% test tương ứng 50% số điểm của bài với N, M < 10;
- Sub2: Có 30% test tương ứng 30% số điểm của bài với N, M ≤ 100;
- Sub3: Có 20% test khác tương ứng 20% số điểm còn lại của bài với N, M ≤ 2×10³.