HSG THCS An Giang 2025-2026
TỈNH AN GIANG
ĐỀ THI CHÍNH THỨC
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
Năm học 2025 - 2026
Môn: Tin học - Ngày thi: 06/03/2026
Thời gian: 150 phút (không kể thời gian giao đề)
(Đề thi có 03 trang, gồm 04 bài)
Tổng quan bài thi
Phần tiêu đề “Tổng quan bài thi”| Bài | Tên bài | File chương trình | Điểm |
|---|---|---|---|
| 1 | Ngôi nhà | ngoinha.* | 3,0 |
| 2 | Vị trí | vitri.* | 6,0 |
| 3 | Chuẩn hoá | chuanhoa.* | 6,0 |
| 4 | Độ dài đoạn | doandai.* | 5,0 |
Chú ý:
- Dấu * được thay thế bởi pas, py, c/cpp, sb3 của ngôn ngữ lập trình được sử dụng tương ứng là Pascal, Python, C/C++, Scratch.
- Đối với Python chỉ sử dụng thư viện chuẩn không import/add gì thêm.
- Đối với C++ chỉ dùng thư viện iostream, cstring, cmath, algorithm.
Bài 1. Ngôi nhà (3,0 điểm)
Phần tiêu đề “Bài 1. Ngôi nhà (3,0 điểm)”Có N ngôi nhà xếp thành hàng ngang (1 ≤ N ≤ 500). Chiều cao các ngôi nhà là H[1], H[2], …, H[N]. Qui ước bãi biển ở bên phải dãy ngôi nhà theo hướng từ trước nhìn vào nhà. Một ngôi nhà nhìn thấy bãi biển nếu tất cả các ngôi nhà bên phải nó đều thấp hơn nó.
Yêu cầu: Viết chương trình tính số lượng ngôi nhà nhìn thấy bãi biển.
Dữ liệu vào: Cho trong tập tin BAI01.INP gồm nhiều dòng:
- Dòng thứ nhất chứa số tự nhiên N (1 ≤ N ≤ 500);
- Dòng thứ hai gồm N số tự nhiên biểu thị độ cao các ngôi nhà (H[i] ≤ 100, với i = 1, 2, 3, …, N), mỗi số cách nhau một ký tự khoảng trắng.
Dữ liệu ra: Ghi vào tập tin BAI01.OUT là một số duy nhất (Số lượng ngôi nhà nhìn
thấy bãi biển).
Dữ liệu thử:
| BAI01.INP | BAI01.OUT | Giải thích |
|---|---|---|
67 6 8 9 12 11 | 2 | 2 là số ngôi nhà nhìn thấy bãi biển (ngôi nhà có chiều cao là 12, 11) |
Bài 2. Vị trí (6,0 điểm)
Phần tiêu đề “Bài 2. Vị trí (6,0 điểm)”Xét dãy số sau:
12 33 4 54 5 6 75 6 7 8 9...Dãy số được tạo bằng cách: Dòng thứ i gồm i số tự nhiên liên tiếp bắt đầu từ i.
Ví dụ: 5 dòng đầu tiên tạo thành dãy:
1 2 3 3 4 5 4 5 6 7 5 6 7 8 9Gọi dãy số trên là dãy D.
Yêu cầu: Viết chương trình tìm vị trí xuất hiện đầu tiên của số K trong dãy D.
Dữ liệu vào: Cho trong tập tin BAI02.INP một dòng duy nhất là số tự nhiên K
(1 < K < 10¹⁰).
Dữ liệu ra: Ghi vào tập tin BAI02.OUT một số duy nhất (vị trí xuất hiện đầu tiên của
số K trong dãy D).
Dữ liệu thử:
| BAI02.INP | BAI02.OUT |
|---|---|
6 | 9 |
Bài 3. Chuẩn hóa (6,0 điểm)
Phần tiêu đề “Bài 3. Chuẩn hóa (6,0 điểm)”Một văn bản được gọi là văn bản chuẩn nếu đáp ứng các điều kiện sau:
- Giữa hai từ liền nhau có duy nhất một ký tự khoảng trắng;
- Dấu ngắt câu (dấu chấm, dấu phẩy, dấu chấm phẩy, dấu chấm hỏi, dấu chấm than) được đặt sát vào ký tự cuối của từ đứng trước nó, sau đó mới đến ký tự khoảng trắng;
- Dấu mở ngoặc đơn, dấu mở ngoặc vuông và dấu mở ngoặc kép phải đặt ngay trước từ đầu tiên trong ngoặc, không có ký tự khoảng trắng giữa từ và dấu mở ngoặc;
- Dấu đóng ngoặc đơn, dấu đóng ngoặc vuông và dấu đóng ngoặc kép phải đặt ngay sau từ cuối cùng trong ngoặc, không có ký tự khoảng trắng giữa từ và dấu đóng ngoặc.
Yêu cầu: Viết chương trình kiểm tra và đưa đoạn văn bản về dạng văn bản chuẩn theo các điều kiện trên.
Dữ liệu vào: Cho trong tập tin BAI03.INP gồm nhiều dòng, mỗi dòng không quá 255 kí
tự.
Dữ liệu ra: Ghi vào tập tin BAI03.OUT là đoạn văn bản đã được chuẩn hóa từ dữ liệu
trên.
Dữ liệu thử:
| BAI03.INP | BAI03.OUT |
|---|---|
( Cham ngoan , hoc gioi )" [ Chao mung ] "" ngay 26 thang 03 " . | (Cham ngoan, hoc gioi)"[Chao mung]" "ngay 26 thang 03". |
Bài 4. Độ dài đoạn (5,0 điểm)
Phần tiêu đề “Bài 4. Độ dài đoạn (5,0 điểm)”Độ dài đoạn là một đoạn gồm các số ngẫu nhiên (tăng, giảm tuỳ ý) trong dãy số theo thứ tự từ trái sang phải. Cho dãy N số nguyên dương (1 ≤ N ≤ 500).
Yêu cầu: Viết chương trình tìm độ dài đoạn con giảm dài nhất mà có tổng nhỏ nhất và in đoạn con đó (với |a[i]| > |a[i+1]|). Nếu có nhiều đoạn con bằng nhau thì in đoạn đầu tiên.
Dữ liệu vào: Cho trong tập tin BAI04.INP gồm nhiều dòng:
- Dòng thứ nhất chứa số tự nhiên N (1 ≤ N ≤ 500).
- Dòng thứ hai gồm N số nguyên (|a[i]| ≤ 1000, với i = 1, 2, 3, …, N), mỗi số cách nhau một ký tự khoảng trắng.
Dữ liệu ra: Ghi vào tập tin BAI04.OUT gồm 3 dòng:
- Dòng 1: Độ dài đoạn con giảm dài nhất mà có tổng nhỏ nhất.
- Dòng 2: Tổng nhỏ nhất của đoạn con giảm dài nhất.
- Dòng 3: Đoạn con dài nhất theo yêu cầu trên, mỗi số cách nhau một ký tự khoảng trắng.
Dữ liệu thử:
| BAI04.INP | BAI04.OUT | Giải thích |
|---|---|---|
91 2 1 3 4 5 3 2 4 | 3105 3 2 | 3 là độ dài đoạn 10 là tổng các số trong đoạn con 5 3 2 là đoạn con |
91 3 2 1 4 5 3 2 4 | 363 2 1 | 3 là độ dài đoạn 6 là tổng các số trong đoạn con 3 2 1 là đoạn con |
Ghi chú:
- Thí sinh không được sử dụng tài liệu.
- Giám thị không giải thích gì thêm.