HSG THPT Đồng Nai 2025-2026 (Bảng A)
SỞ GIÁO DỤC VÀ ĐÀO TẠO
ĐỒNG NAI
ĐỀ THI CHÍNH THỨC
(Đề thi gồm: 03 trang, có 04 bài)
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH THPT
Năm học 2025 - 2026
Môn: Tin học - Bảng A - Ngày thi: 22/01/2026
Thời gian: 180 phút (không kể thời gian giao đề)
Tổng quan đề thi
Phần tiêu đề “Tổng quan đề thi”| Tên bài | Tên tệp mã nguồn | Tên tệp Input | Tên tệp Output | Điểm |
|---|---|---|---|---|
| Bài 1. Phát quà | PHATQUA.* | PHATQUA.INP | PHATQUA.OUT | 5 điểm |
| Bài 2. Hàng rào | HANGRAO.* | HANGRAO.INP | HANGRAO.OUT | 5 điểm |
| Bài 3. Cảm biến | CAMBIEN.* | CAMBIEN.INP | CAMBIEN.OUT | 5 điểm |
| Bài 4. Phi tiêu | PHITIEU.* | PHITIEU.INP | PHITIEU.OUT | 5 điểm |
Dấu * được thay thế bằng CPP hoặc PY tùy theo ngôn ngữ lập trình là C++ hoặc Python.
Hãy lập trình để giải các bài toán sau:
Bài 1. Phát quà
Phần tiêu đề “Bài 1. Phát quà”Trong tiết sinh hoạt lớp, giáo viên chủ nhiệm tổ chức hoạt động phát quà cho các bạn học sinh trong lớp chuyên. Giáo viên phát quà cho học sinh theo quy tắc sau:
- Mỗi học sinh sẽ đem theo một số lượng viên kẹo tùy ý.
- Học sinh xếp thành hàng ngang theo chiều tăng dần (từ trái qua phải) của số kẹo mà mình có.
- Học sinh nào đứng ở vị trí có số thứ tự trùng với số viên kẹo mình đem theo thì sẽ được ưu tiên phát quà trước, tiếp theo giáo viên sẽ phát quà cho các bạn còn lại.
Biết rằng có N học sinh, học sinh thứ i đem theo aᵢ viên kẹo.
Yêu cầu: Hãy đếm xem có bao nhiêu học sinh được ưu tiên phát quà trước.
Input: Vào từ tệp PHATQUA.INP gồm hai dòng:
- Dòng đầu tiên chứa số nguyên dương N là số học sinh (0 < N ≤ 10⁶).
- Dòng thứ hai chứa N số nguyên dương a₁, …, a_N là số kẹo học sinh đem theo (0 < aᵢ ≤ 10⁹).
Output: Ghi ra tệp PHATQUA.OUT số lượng học sinh được ưu tiên phát quà trước.
Ví dụ:
| PHATQUA.INP | PHATQUA.OUT | Giải thích |
|---|---|---|
53 3 4 3 6 | 2 | Các học sinh sau khi xếp thành hàng ngang theo chiều tăng dần của số kẹo tương ứng: vị trí 1, 2, 3, 4, 5 có số kẹo lần lượt là 3, 3, 3, 4, 6. 2 học sinh đứng ở vị trí 3, 4 có số thứ tự trùng với số viên kẹo mình đem theo → có 2 học sinh được ưu tiên phát quà trước. |
55 3 4 7 6 | 0 | Các học sinh sau khi xếp thành hàng ngang theo chiều tăng dần của số kẹo tương ứng: vị trí 1, 2, 3, 4, 5 có số kẹo lần lượt là 3, 4, 5, 6, 7. Không có học sinh nào đứng tại vị trí có số thứ tự trùng với số viên kẹo mình đem theo → có 0 học sinh được ưu tiên phát quà trước. |
Bài 2. Hàng rào
Phần tiêu đề “Bài 2. Hàng rào”Trường THPT Sáng Tạo muốn sửa lại hệ thống hàng rào sắt của trường thành hàng rào gỗ. Hàng rào gỗ được tạo nên bằng cách ghép M thanh gỗ có dạng hình vuông kích thước N × N liên tục, sát vào nhau.
Để thể hiện tính “sáng tạo” của trường, nhà trường yêu cầu đội thi công phải tạo hàng rào gỗ mới có chiều dài là một số chính phương và đội thi công chỉ được sử dụng không quá K thanh gỗ.
Biết rằng: Số chính phương là bình phương của một số nguyên khác (ví dụ: 4, 9 là các số chính phương vì: 4 = 2², 9 = 3²).
Yêu cầu: Em hãy đếm xem có bao nhiêu giá trị của M mà đội thi công có thể sử dụng.
Input: Vào từ tệp HANGRAO.INP gồm hai dòng:
- Dòng đầu tiên chứa số nguyên dương K là số thanh gỗ tối đa (0 < K ≤ 10¹⁸).
- Dòng thứ hai chứa số nguyên dương N là chiều dài thanh gỗ (0 < N ≤ 10⁹).
Output: Ghi ra tệp HANGRAO.OUT số lượng các số M thỏa mãn yêu cầu đề bài.
Ràng buộc:
- Subtask 1: K ≤ 10⁶, N ≤ 10³.
- Subtask 2: Không có ràng buộc gì thêm.
Ví dụ:
| HANGRAO.INP | HANGRAO.OUT | Giải thích |
|---|---|---|
102 | 2 | Các số M có thể được chọn: 2, 8. Vì: 2 × 2 = 2², 2 × 8 = 4². |
283 | 3 |
Bài 3. Cảm biến
Phần tiêu đề “Bài 3. Cảm biến”Trên một dây chuyền sản xuất, công ty cho lắp một thiết bị cảm biến để đo chất lượng sản phẩm di chuyển trên dây chuyền này. Cứ sau mỗi một đơn vị thời gian, cảm biến sẽ đo và ghi nhận lại số liệu. Cảm biến đã đo N lần, tại thời điểm thứ i thì số liệu đo được là aᵢ. Sau khi xem xét dữ liệu đo được, công ty nhận thấy tại một số thời điểm, số liệu đo được bằng tổng số liệu đo được ở 3 thời điểm khác nhau trước đó.
Yêu cầu: Từ dữ liệu đo của cảm biến, bạn hãy đếm số lượng bộ (i, j, k, p) thỏa mãn:
- i < j < k < p
- aᵢ + aⱼ + aₖ = aₚ
Input: Vào từ tệp CAMBIEN.INP gồm 2 dòng:
- Dòng đầu tiên chứa số nguyên dương N (4 ≤ N ≤ 10⁵).
- Dòng thứ hai chứa các giá trị a₁, …, aₙ (1 ≤ aᵢ ≤ 100). Hai số kề nhau được phân tách với nhau bởi khoảng trắng.
Output: Ghi ra tệp CAMBIEN.OUT số lượng bộ (i, j, k, p) thỏa mãn yêu cầu của đề bài.
Ràng buộc:
- Subtask 1: N ≤ 100.
- Subtask 2: N ≤ 2000.
- Subtask 3: Không có ràng buộc gì thêm.
Ví dụ:
| CAMBIEN.INP | CAMBIEN.OUT | Giải thích |
|---|---|---|
61 2 1 4 2 5 | 3 | Có 3 bộ (i, j, k, p) thỏa mãn yêu cầu của đề bài: (1, 2, 3, 4), (1, 2, 5, 6), (2, 3, 5, 6). |
Bài 4. Phi tiêu
Phần tiêu đề “Bài 4. Phi tiêu”Trò chơi phi tiêu được mô tả như sau: người chơi sẽ phóng phi tiêu làm nổ các quả bóng bay gắn trên một tấm bảng ở một khoảng cách xa. Tấm bảng được chia thành N dòng M cột, giao giữa dòng và cột là ô vuông có kích thước cạnh là 1, mỗi ô trong bảng được gắn một quả bóng bay. Người chơi sẽ phóng phi tiêu K lần, mỗi lần phóng 1 phi tiêu, khi phi tiêu phóng vào một ô trong bảng thì quả bóng ở ô đó sẽ nổ. Người chơi rất xuất sắc nên mỗi lần phóng phi tiêu sẽ làm nổ 1 quả bóng. Những ô mà bóng đã nổ sẽ không được thay bóng mới.
Yêu cầu: Sau mỗi lần người chơi phóng phi tiêu, bạn cần ghi lại độ dài cạnh hình vuông lớn nhất trong bảng mà toàn bộ các quả bóng trong phần hình vuông đó đều chưa nổ.
Input: Vào từ tệp PHITIEU.INP gồm các dòng:
- Dòng đầu tiên chứa hai số nguyên dương N và M (1 ≤ N, M ≤ 350).
- Dòng thứ hai chứa số nguyên dương K (1 ≤ K ≤ N × M).
- Dòng thứ i trong K dòng tiếp theo chứa hai số nguyên dương Dᵢ và Cᵢ cho biết người chơi phóng phi tiêu vào ô ở dòng Dᵢ cột Cᵢ tại lần phóng phi tiêu thứ i.
Output: Ghi ra tệp PHITIEU.OUT gồm K dòng: dòng thứ i ghi độ dài cạnh hình vuông lớn nhất
trong bảng chứa các ô có quả bóng chưa nổ sau lần phóng phi tiêu thứ i của người chơi.
Ràng buộc:
- Subtask 1: N, M ≤ 10.
- Subtask 2: N, M ≤ 50.
- Subtask 3: Không có ràng buộc gì thêm.
Ví dụ:
| PHITIEU.INP | PHITIEU.OUT |
|---|---|
3 432 11 42 3 | 321 |

Hết