# KHOÁ LUYỆN ĐỀ DÀNH CHO HS THCS
:::success
:green_book: **GÓI NÀY GỒM CÓ**:
Đề thi HSG Bình Dương các năm:
- 2020 - 2021
- 2021 - 2022
- Không có đề 2022 - 2023
- 2023 - 2024
Đề thi HSG Bình Phước các năm:
- 2022 - 2023
- 2023 - 2024
:::
## :books: ĐỀ SỐ 1: ĐỀ THI HSG BÌNH DƯƠNG (2020 - 2021)
**<p style="text-align: center;font-weight: bold;font-size: 2rem">SỞ GIÁO DỤC VÀ ĐÀO TẠO BÌNH DƯƠNG</p>**
<p style="text-align: center;font-weight: bold;">KỲ THI CHỌN HỌC SINH GIỎI THCS CẤP TỈNH</p>
<p style="text-align: center;">NĂM HỌC 2020-2021</p>
<p style="text-align: center;">Môn: TIN HỌC</p>
<p style="text-align: center;">Ngày thi: 18/03/2021</p>
---
<p style="text-align: center;">(Đề thi có 02 trang)</p>
<p style="text-align: center;">Thời gian làm bài: 150 phút (không kể phát đề)</p>
### TỔNG QUAN ĐỀ THI
| Bài | Tên bài | Tên file chương trình | Tên file dữ liệu vào | Tên file kết quả | Điểm |
| - | - | - | - | - | - |
| 1 | SỐ ĐỐI XỨNG | DOIXUNG.PAS | BÀN PHÍM | MÀN HÌNH | 4,0 |
| 2 | DÃY SỐ NGUYÊN CÓ TỔNG BẰNG N | SONGUYEN.PAS | BÀN PHÍM | MÀN HÌNH | 4,0 |
| 3 | TRÒ CHƠI VỚI CÁC VIÊN BI | VIENBI.PAS | BÀN PHÍM | MÀN HÌNH | 6,0 |
| 4 | CHỌN TÚI LÌ XÌ | LIXI.PAS | BÀN PHÍM | MÀN HÌNH | 6,0 |
### :question: Bài 1: Số đối xứng
:::info
**Số đối xứng** là số có thể viết từ trái sang phải hay viết từ phải sang trái các chữ số của nó ta vẫn được chính nó, ví dụ các số $363$, $1221$, $474$ là số đối xứng. Có một số $x$ ta lấy các chữ số từ phải qua trái của nó viết lại theo thứ tự từ trái qua phải ta thu được một số mới $k$, số $k$ gọi là **số đảo** của số $x$. Ví dụ $x=123$ thì $k=321$; $x=130$ thì $k=031$ (giá trị thực của $k=31$ vì số $0$ đầu không có nghĩa).
Cho một số nguyên dương $n$, qua phép biến đổi sau đây ta luôn thu được một số đối xứng: Lấy số $n$ cộng với số đảo của nó thu được tổng là $n_1$, nếu $n_1$ chưa là số đối xứng thì tiếp tục lấy nó cộng với số đảo của nó thu được tổng $n_2$ và tiếp tục làm như vậy đến khi nhận được số đối xứng.
:::
:::warning
**Yêu cầu**: Viết chương trình nhập số nguyên dương $n$ $(10 < n \le 65000)$. Xuất ra màn hình số đối xứng thu được qua phép biến đổi trên và số lần biến đổi để thu được số đối xứng.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 157 | So doi xung = 8888<br />So lan bien doi = 3 | $157+751=908$ (biến đổi lần 1)<br />$908+809=1717$ (biến đổi lần 2)<br />$1717+7171=8888$ (biến đổi lần 3 thu được số đối xứng) |
### :question: Bài 2: Dãy số nguyên có tổng bằng $N$
:::warning
Cho số nguyên dương $N$. Hãy cho biết có bao nhiêu dãy số nguyên dương có tổng các phần tử trong dãy bằng $N$.
**Dữ liệu vào**: Số nguyên $N$ $(N \le 10^{18})$.
**Kết quả**: Một số nguyên duy nhất là số dư của kết quả tìm được khi chia cho $123456789$.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 3 | 4 | Có 4 dãy số nguyên dương có tổng bằng 3 đó là: (1; 1; 1), (1; 2), (2; 1), (3) |
### :question: Bài 3: Trò chơi với các viên bi
:::info
Bo và An cùng nhau chơi trò chơi với các viên bi. Có $n$ ô chứa các viên bi. Ô thứ $i$ chứa $a_i$ viên bi. Nếu một ô bị lấy hết các viên bi thì các ô còn lại sẽ bị lấy bớt một viên bi.
:::
:::warning
Hãy giúp anh Bo tính xem phải lấy như thế nào để số viên bi lấy được là nhiều nhất.
**Dữ liệu vào**: gồm 2 dòng
- Dòng thứ nhất là số nguyên $n$ $(1 \le n \le 100)$ là số lượng ô chứa bi.
- Dòng thứ hai gồm $n$ số nguyên $a_1, a_2,..., a_n$ $(1 \le a_i \le 1000)$ là số lượng viên bi có trong ô.
**Dữ liệu xuất**: Là một số nguyên xác định số viên bi nhiều nhất mà Bo có thể lấy được.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 4<br />4 4 4 4 | 10 | Lấy ô thứ 1 (được $4$), số lượng bi còn lại là 3 3 3; lấy ô thứ 2 (được $3$), số bi còn lại là 2 2, lấy ô thứ 3 (được $2$) và ô thứ 4 (được $1$), tổng cộng $10$. |
### :question: Bài 4: Chọn túi lì xì
:::info
Anh Bo luôn thắng trong trò chơi các viên bị nên An quyết định chuyển sang trò chơi chọn các túi lì xì. An chuẩn bị $N$ túi lì xì, trong túi thứ $i$ có số tiền là $a_i$ và một số nguyên $b_i$ $(b_i \ge 0)$ may mắn. Nếu $b_i > 0$ thì An được phép chọn thêm $b_i$ túi lì xì khác. Đầu tiền, An chọn một túi bất kỳ, sau đó giả sử An đang có tổng số tiền là $A$ và số túi được phép chọn thêm là $B$ $(B > 0)$, nếu An chọn thêm túi thứ $i$ thì tổng số tiền là $A + a_i$ và tổng số túi được chọn thêm là $B-1+b_i$. Cứ như vậy cho đến khi không được phép chọn thêm $(B = 0)$ hoặc đã chọn hết $N$ túi.
:::
:::warning
**Yêu cầu**: Hãy giúp giúp An xác định thứ tự chọn túi sao cho tổng số tiền An có được là lớn nhất để thắng trò chơi nhé.
**Dữ liệu vào**: Số nguyên $N$ $(1 \le N \le 100)$ là số túi lì xì, dãy số nguyên $a_i$ $(0 \le a_i \le 100;\ i=1..N)$, dãy số nguyên $b_i$ $(0 \le b_i \le100;\ i=1..N)$. Trong đó, $a_i$ số tiền, $b_i$ là con số may mắn có trong túi $i$.
**Kết quả**: Là số nguyên xác định số tiền nhiều nhất mà An có thể lấy được.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| N=3<br />1 0<br />2 0<br />0 2 | 3 | Đầu tiên chọn túi 3, sau đó chọn túi 1 và tiếp theo là túi 2 |
---
## :books: ĐỀ SỐ 2: ĐỀ THI HSG BÌNH DƯƠNG (2021 - 2022)
**<p style="text-align: center;font-weight: bold;font-size: 2rem">SỞ GIÁO DỤC VÀ ĐÀO TẠO BÌNH DƯƠNG</p>**
<p style="text-align: center;font-weight: bold;">KỲ THI CHỌN HỌC SINH GIỎI THCS CẤP TỈNH</p>
<p style="text-align: center;">NĂM HỌC 2021-2022</p>
<p style="text-align: center;">Môn: TIN HỌC</p>
<p style="text-align: center;">Ngày thi: 17/03/2021</p>
---
<p style="text-align: center;">(Đề thi có 02 trang)</p>
<p style="text-align: center;">Thời gian làm bài: 150 phút (không kể phát đề)</p>
### TỔNG QUAN ĐỀ THI
| Bài | Tên bài | Tên file chương trình | Tên file dữ liệu vào | Tên file kết quả | Điểm |
| - | - | - | - | - | - |
| 1 | RA CHỢ LẤY HÀNG | CHOHANG.PAS | BÀN PHÍM | MÀN HÌNH | 4,0 |
| 2 | VÒNG TAY | VONGTAY.PAS | BÀN PHÍM | MÀN HÌNH | 4,0 |
| 3 | TÍNH TOÁN | TINHTOAN.PAS | BÀN PHÍM | MÀN HÌNH | 6,0 |
| 4 | THAM GIA LỄ HỘI | LEHOI.PAS | BÀN PHÍM | MÀN HÌNH | 6,0 |
### :question: Bài 1: Ra chợ lấy hàng
:::info
Mẹ nhờ Bo ra chợ lấy hàng hóa để chuẩn bị bán hàng vào dịp Tết sắp đến. Do chưa biết hàng hóa được đóng gói như thế nào nên Bo mang theo thùng chứa hàng chứa được tối đa $N$ Kg. Khi đến điểm bán hàng, Bo thấy cửa hàng chỉ đóng gói hàng vào 02 loại hộp $A$ Kg và $B$ Kg.
:::
:::warning
**Yêu cầu**: Bạn hãy giúp Bo tính toán số kg hàng hóa tối đa mà Bo có thể chở một chuyến, biết rằng số kg hàng hóa của cửa hàng đang có nhiều hơn khả năng chở hàng của thùng trên xe Bo.
**Dữ liệu vào**: Số nguyên $N,\ A,\ B$ $(1 \le A,\ B,\ N \le 1000)$.
**Kết quả**: Một số nguyên duy nhất là số Kg tối đa hàng hóa tối đa mà Bo có thể chở một chuyến.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| N=77, A=17, B=25 | 76 | Bo sẽ chở 3 gói hàng 17 Kg và 1 gói hàng 25 Kg |
### :question: Bài 2: Vòng tay
:::info
Đề có tiền đi chơi lễ hội trong mùa xuân năm nay, Bo quyết định làm các vòng tay để bán cho du khách. Bo tham gia khóa học kết các vòng tay của một cửa hàng. Bo muốn ghi chép lại các kiểu kết vòng tay nên quy ước mỗi loại hạt dùng để kết vòng tay là một con số từ $1$ đến $9$. Một vòng tay được kết từ một dãy các hạt mẫu lặp đi lặp lại $k$ lần và luôn kết thúc bằng hạt cùng loại với hạt bắt đầu.
:::
:::warning
Bạn hãy giúp Bo tìm số lượng các hạt trong dãy hạt mẫu để Bo dễ dàng kết vòng tay nhé.
**Dữ liệu vào**: Số nguyên $N$ $(1 \le N \le 100)$ và một dãy $a_i$ $(1 \le a_i \le 9)$ là các hạt được kết trong vòng tay.
**Kết quả**: Một số nguyên duy nhất là số lượng các hạt trong dãy hạt mẫu.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 13<br />5 3 1 3 5 2 5 3 1 3 5 2 5 | 6 | Dãy hạt mẫu là 5 3 1 3 5 2 có 6 hạt |
### :question: Bài 3: Tính toán
:::info
Bo quyết định mua nguyên liệu kết vòng tay để bán cho du khách. Đầu tiên, Bo vay tiền của bạn bè để mua nguyên liệu và khi bán được vòng tay sẽ trả lại tiền đã vay. Bo liệt kê tất cả $N$ các khoản tiền bán vòng tay và các khoản vay từ bạn bè trong sổ ghi chép được đánh số vị trí từ $1$ đến $N$.
Khi có đủ tiền trả cho khoản vay thì Bo sẽ trả ngay cho người mình đang vay không nhất thiết phải bán hết vòng tay mới trả. Bo luôn bắt đầu ở vị trí $0$ và kết thúc phải là vị trí cuối cùng trong danh sách liệt kê.
:::
:::warning
Hãy giúp Bo tìm số bước ngắn đi nhất để thu tiền bán vòng tay và trả tất cả nợ cho bạn bè. Trong trường hợp Bo không đủ tiền trả các khoản vay thì Bo quay về vị trí cuối cùng và vẫn còn nợ.
**Dữ liệu vào**: Số nguyên $N$ $(1 \le N \le 10^5)$ và $a_i$ số nguyên $(-10^3 \le ai \le 10^3)$.
**Dữ liệu xuất**: Một số nguyên duy nhất là số bước đi ngắn nhất Bo phải đi.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 5<br />100 -200 250 -200 150 | 9 | Bắt đầu 100 -200 250 -200 150<br />- Đi 1 đơn vị nhận được 100 (số bước: 1)<br />- Đi tiếp 2 đơn vị nhận được 350 (số bước: 3)<br />- Quay lại 1 đơn vị trả 200 còn lại 150 (số bước: 4)<br />- Đi tiếp 3 đơn vị nhận được 150 (số bước: 7)<br />- Quay lại 1 đơn vị và trả 200 (số bước: 8) |
| 5<br />100 -200 250 -200 10 | 7 | Bắt đầu 100 -200 250 -200 10<br />- Đi 1 đơn vị nhận được 100 (số bước: 1)<br />- Đi tiếp 2 đơn vị nhận được 350 (số bước: 3)<br />- Quay lại 1 đơn vị trả 200 còn lại 150 (số bước: 4)<br />- Đi tiếp 3 đơn vị nhận được 10 (số bước: 7) |
### :question: Bài 4: Tham gia lễ hội
:::info
Đã đến lễ hội mùa xuân, Bo rất vui vì đã có đủ tiền tham gia lễ hội. Trong lễ hội có rất nhiều trò chơi được tổ chức, Bo muốn sắp xếp thời gian để có thể tham gia nhiều trò chơi nhất có thể mà không trùng về mặt thời gian.
:::
:::warning
**Yêu cầu**: Hãy giúp Bo xác định số lượng trò chơi nhiều nhất mà Bo có thể tham gia.
**Dữ liệu vào**: Số nguyên $N$ $(1 \le N \le 1000)$ là số lượng trò chơi, dãy số nguyên $a_i$, $b_i$ $(1 \le a_i \le b_i \le 10^9;\ i=1..N)$ là thời gian bắt đầu và kết thúc của trò chơi thứ $i$.
**Kết quả**: Là số nguyên xác định số lượng trò chơi nhiều nhất mà Bo có thể tham gia.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| N=6<br />3 8<br />9 12<br />6 10<br />1 4<br />2 7<br />11 14 | 3 | Đầu tiên Bo tham gia trò chơi thứ 4, sau đó tham gia trò chơi thứ 3 và cuối cùng tham gia trò chơi thứ 6. |
---
## :books: ĐỀ SỐ 3: ĐỀ THI HSG BÌNH DƯƠNG (2023 - 2024)
**<p style="text-align: center;font-weight: bold;font-size: 2rem">SỞ GIÁO DỤC VÀ ĐÀO TẠO BÌNH DƯƠNG</p>**
<p style="text-align: center;font-weight: bold;">KỲ THI CHỌN HỌC SINH GIỎI THCS CẤP TỈNH</p>
<p style="text-align: center;">NĂM HỌC 2023-2024</p>
<p style="text-align: center;">Môn: TIN HỌC</p>
<p style="text-align: center;">Ngày thi: 16/03/2021</p>
---
<p style="text-align: center;">(Đề thi có 02 trang)</p>
<p style="text-align: center;">Thời gian làm bài: 150 phút (không kể phát đề)</p>
### TỔNG QUAN ĐỀ THI
| Bài | Tên bài | Tên file chương trình | Tên file dữ liệu vào | Tên file kết quả | Điểm |
| - | - | - | - | - | - |
| 1 | CHIA SÁCH | CHISACH.PAS | BÀN PHÍM | MÀN HÌNH | 4,0 |
| 2 | TRỌNG SỐ CỦA DÃY | TRONGSO.PAS | BÀN PHÍM | MÀN HÌNH | 4,0 |
| 3 | HÌNH CHỮ NHẬT | HINHCHUNHAT.PAS | BÀN PHÍM | MÀN HÌNH | 6,0 |
| 4 | MUA BÚT | MUABUT.PAS | BÀN PHÍM | MÀN HÌNH | 6,0 |
### :question: Bài 1: Chia sách
:::info
Lớp của Nam tham gia cuộc thi xếp sách nghệ thuật do Trường tổ chức. Nam tập hợp được $N$ quyển sách ($N$ là số tự nhiên). Nam muốn chia sách thành các chồng sách có số lượng quyển sách tăng dần liên tiếp nhau để dễ dàng sắp xếp. Hãy viết chương trình giúp Nam tìm tất cả các cách để chia sách. Nếu có, thì có bao nhiêu cách và hãy liệt kê tất cả các cách có thể có. Nếu không, thì thông báo bằng số $0$ và ghi lại số đó.
**Ví dụ**: Nam có 9 quyển sách thì có 2 cách chia sách:
- Cách 1 chia thành 2 chồng sách có số lượng quyển sách lần lượt là 4 và 5.
- Cách 2 chia thành 3 chồng sách có số lượng quyển sách lần lượt là 2, 3, 4.
:::
:::warning
**Dữ liệu vào**: Số tự nhiên $N$
**Kết quả**:
- Dòng đầu tiên là số cách chia sách
- Các dòng tiếp theo, mỗi dòng là một cách chia sách, số lượng quyển sách của mỗi chồng sách trên một dòng cách nhau đúng dấu `+`.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 9 | 2<br />4+5<br />2+3+4 | Có 02 cách chia sách:<br />Cách 1: 4+5<br />Cách 2: 2+3+4 |
### :question: Bài 2: Trọng số của dãy
:::info
Cho dãy số nguyên $N$ $(1 \le N \le 2 \cdot 10^5)$ gồm phần tử $A = (a_1, a_2, ..., a_N)$. Trọng số $C$ của $A$ được tính như sau:
$$
C = \sum_{i=1}^{n}i \times a_i
$$
Được phép thực hiện một lần biến đổi trên dãy $A$ bằng cách di chuyển một phần tử đến vị trí đầu hoặc cuối dãy. Tìm trọng số $C$ lớn nhất thu được.
:::
:::warning
**Dữ liệu vào**: Số nguyên $N$ và dãy số nguyên $a_1, a_2, ..., a_n$ $(|a_i| \le 10^6)$.
**Kết quả**: Một số nguyên là trọng số $C$ lớn nhất thu được.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 4<br />4 3 2 5 | 39 | Chuyển phần tử thứ 3 (2) về đấu, ta được dãy 2 4 3 5. Dãy này có trọng số $C= 1 \times 2 + 2 \times 4 + 3 \times 3 + 4 \times 5 = 39$ |
### :question: Bài 3: Hình chữ nhật
:::info
Sau khi đi học về, mẹ nhờ Nam ra vườn sắp xếp số củi đốt là mẹ mới mua. Nam muốn xếp củi theo hình chữ nhật cao dần để không chiếm quá nhiều diện tích sân, do đó Nam đi tìm 4 que củi để có thể xếp thành một hình chữ nhật đầu tiên có diện tích lớn nhất. Trong sân có $N$ que củi, que thứ $i$ có độ dài $a_i$.
:::
:::warning
Bạn hãy giúp Nam tìm cách chọn que củi để xếp được một hình chữ nhật có diện tích lớn nhất.
**Dữ liệu vào**: Dòng đầu chứa số nguyên $N$ $(4 \le N \le 200000)$ và dãy số nguyên $a_1, a_2, ..., a_n$ $(1 \le a_i \le 10^9)$ là độ dài lần lượt của $N$ que củi.
**Dữ liệu xuất**: Một số nguyên là diện tích lớn nhất hình chữ nhật xếp được. Nếu không tồn tại cách xếp hình chữ nhật thì xuất ra $0$.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 5<br />5 3 1 5 1 | 5 | Hình chữ nhật có diện tích lớn nhất có thể xếp là $5 \times 1 = 5$ |
### :question: Bài 4: Mua bút
:::info
Để động viên Nam chuẩn bị cho kỳ thi học sinh giỏi sắp tới, mẹ cho Nam $M$ đồng $(1 \le M \le 10^3)$ mua bút để ôn tập. Khi đến nhà sách Nam thấy có $N$ $(1 \le N \le 100)$ loại bút mà mình muốn mua. Loại bút thứ $i$ có giá là $a_i$ đồng và nhà sách có số lượng là $b_i$ cây $(i=1..n,\ 1 \le a_i,\ b_i \le 10^3)$.
Với số tiền mẹ đã cho, Nam muốn mua được càng nhiều bút càng tốt mà không cần phải có nhiều loại bút khác nhau.
:::
:::warning
Bạn hãy giúp Nam tính toán xem có thể mua tối đa bao nhiêu cây bút.
**Dữ liệu vào**:
- Số nguyên $N$ là số loại bút Nam muốn mua, số nguyên $M$ là số tiền mẹ Nam cho.
- Dòng thứ $i$ trong $N$ dòng sau chứa hai số nguyên $a_i$ và số nguyên $b_i$ $(1 \le a_i,\ b_i \le 10^3)$.
**Dữ liệu xuất**: Số lượng bút tối đa mà Nam có thể mua được.
:::
**Ví dụ**:
| Dữ liệu vào | Kết quả | Giải thích |
| - | - | - |
| 5 50<br />5 3<br />1 1<br />10 4<br />7 2<br />60 1 | 8 | Mua 3 cây bút loại 1 mất $3 \times 5 = 15$ đồng<br />Mua 1 cây bút loại 2 mất $1 \times 1 = 1$ đồng<br />Mua 2 cây bút loại 3 mất $2 \times 10 = 20$ đồng<br />Mua 2 cây bút loại 4 mất $2 \times 7 = 14$ đồng |
---
## :books: ĐỀ SỐ 4: ĐỀ THI HSG BÌNH PHƯỚC (2022 - 2023)
**<p style="text-align: center;font-weight: bold;font-size: 2rem">SỞ GIÁO DỤC VÀ ĐÀO TẠO BÌNH PHƯỚC</p>**
<p style="text-align: center;font-weight: bold;">KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH LỚP 9</p>
<p style="text-align: center;">NĂM HỌC 2022-2023</p>
<p style="text-align: center;">Môn: TIN HỌC</p>
<p style="text-align: center;">Ngày thi: 18/03/2023</p>
---
<p style="text-align: center;">(Đề thi có 03 trang)</p>
<p style="text-align: center;">Thời gian làm bài: 150 phút (không kể thời gian giao đề)</p>
### TỔNG QUAN ĐỀ THI
| Bài | Tên bài | Tên file chương trình | Tên file dữ liệu vào | Tên file kết quả | Điểm |
| - | - | - | - | - | - |
| 1 | TÍNH TỔNG | tinhtong.\* | tinhtong.inp | tinhtong.out | 4,0 |
| 2 | THAM QUAN | thamquan.\* | thamquan.inp | thamquan.out | 6,0 |
| 3 | SỐ KHOẺ MẠNH | sokhoemanh.\* | sokhoemanh.inp | sokhoemanh.out | 7,0 |
| 4 | NGUYÊN TỐ | nguyento.\* | nguyento.inp | nguyento.out | 3,0 |
***Dấu \* được thay thế bởi `CPP` hoặc `PY` của ngôn ngữ lập trình được sử dụng tương ứng là C++ hoặc Python.***
### :question: Bài 1: Tính tổng
:::info
Bé Na học toán, hôm nay học đến bài toán tính tổng dãy số chẵn liên tiếp nhau. Với dãy số ngắn Na tính nhẳm rất nhanh và chính xác nên mẹ của em rất vui mừng. Sau đó mẹ muốn nâng cao khả năng làm toán của bé bằng việc cho những dãy số dài có nhiều phần tử. *“Mẹ cho bé Na một số nguyên dương chẵn $n$, đố bé Na tính được tổng của những số chẵn nhỏ hơn $n$”*. Na lúng túng chưa biết thực hiện như thế nào.
:::
:::warning
**Yêu cầu**: Em hãy lập trình giúp bé Na giải bài toán trên.
**Dữ liệu vào**: đọc từ tệp `tinhtong.inp` gồm 1 số nguyên dương chẵn duy nhất.
**Đầu ra**: ghi vào tệp `tinhtong.out` gồm 1 số nguyên thể hiện kết quả.
:::
**Ví dụ**:
| tinhtong.inp | tinhtong.out | giải thích |
| - | - | - |
| 12 | 30 | 2+4+6+8+10 |
**Ràng buộc**:
- 75% bộ test tương ứng 75% số điểm với $n \leq 10^9$
- 25% bộ test tương ứng 25% số điểm với $n > 10^9$
### :question: Bài 2: Tham quan
:::info
Một khu tham quan du lịch mở cửa tất cả các ngày trong tuần. Thời gian mở cửa từ 6 giờ đến 18 giờ mỗi ngày. Một người vào tham quan sẽ đi vào một thứ $t$ trong tuần với giờ vào tham quan là $a$ và giờ kết thúc là $b$.
Bảng giá dịch vụ như sau:
+ **Ngày thường**: thứ 2 đến thứ 6
- Từ 6 giờ - 12 giờ: giá 6 đồng/1 giờ
- Từ 12 giờ - 18 giờ: giá 10 đồng/1 giờ
+ **Ngày lễ**: thứ 7 và Chủ nhật
- Từ 6 giờ - 12 giờ : giá 10 đồng/1 giờ
- Từ 12 giờ - 18 giờ : giá 15 đồng/1 giờ
+ **Lưu ý**: đến 20 giờ nhân viên sẽ phát loa thông báo để yêu cầu khách tham quan phải rời khỏi khu du lịch. Theo đó, nếu khách ra trễ hơn thời gian quy định là 18 giờ thì sẽ bị phạt tiền 20 đồng/1 giờ. Việc phạt áp dụng như nhau cho tất cả các ngày.
:::
:::warning
**Yêu cầu**: Tính số tiền khách phải trả sau khi vào tham quan tại khu du lịch trên.
**Dữ liệu vào**: Từ tệp `thamquan.inp` gồm 3 số nguyên dương $t,\ a,\ b$ cách nhau một khoảng trắng. Trong đó $t$ là thứ trong tuần (quy ước $t = 1,2,...,7$ tương ứng Chủ nhật, thứ 2, ... , thứ 7).
**Dữ liệu ra**: Ghi ra tệp `thamquan.out` một số nguyên duy nhất là số tiền khách hàng phải trả.
:::
**Ví dụ**:
| thamquan.inp | thamquan.out | Giải thích |
| - | - | - |
| 1 6 11 | 50 | Khách tham quan từ 6 giờ đến 11 giờ ngày Chủ nhật |
| 3 13 17 | 40 | Khách tham quan từ 13 giờ đến 17 giờ ngày thứ 3 |
### :question: Bài 3: Số khoẻ mạnh
:::info
Trong tính chất của số nguyên $n$, nếu $n$ chia hết cho $m$ thì ta nói $m$ là ước số của $n$ (hoặc $n$ là bội số của $m$). Số nguyên $n$ có thể có nhiều ước kể cả chính nó.
Ước thực sự của số nguyên $n$ là những ước số nhỏ hơn $n$. Chẳng hạn $n=6$ thì ước thực sự của $n$ là $1$, $2$ và $3$. Gọi $T$ là tổng các ước thực sự của số nguyên dương $n$.
Khi đó $T > n$ ta nói $n$ là số khỏe mạnh.
**Ví dụ**: số $12$ là một số khỏe mạnh vì: Tổng các ước của $12$ là $T = 1 + 2 + 3 + 4 + 6 = 16 > 12$.
:::
:::warning
**Yêu cầu**: Cho hai số nguyên $a$ và $b$ $(0 < a < b)$. Hãy tìm xem có bao nhiêu số khỏe mạnh trong đoạn $[a,\ b]$.
**Dữ liệu vào**: Lưu trong tệp `sokhoemanh.inp` một dòng duy nhất chứa hai số nguyên dương $a$, $b$ cách nhau một khoảng trắng.
**Dữ liệu ra**: Ghi ra tệp `sokhoemanh.out` một số nguyên duy nhất là số lượng các số khỏe mạnh trong đoạn $[a,\ b]$.
:::
**Ví dụ**:
| sokhoemanh.inp | sokhoemanh.out | Giải thích |
| - | - | - |
| 1 50 | 9 | Từ 1 đến 50 có 9 số mạnh khoẻ: 12, 18, 20, 24, 30, 36, 40, 42, 48 |
**Ràng buộc**:
- 70% số test tương ứng với 70% số điểm có $1 \leq a < b \leq 10^3$.
- 15% số test tương ứng với 15% số điểm có $1 \leq a < b \leq 10^5$.
- 15% số test tương ứng với 15% số điểm có $1 \leq a < b \leq 3 \times 10^6$.
### :question: Bài 4: Nguyên tố
:::info
Bạn An rất thích những con số, đặc biệt là khi được thầy giáo dạy về số nguyên tố. Số nguyên tố là số chỉ có duy nhất 2 ước số là 1 và chính nó. Bình là bạn học của An, Hôm nay Bình đố An biết có tất cả bao nhiêu số nguyên tố thuộc đoạn $[a,\ b]$ với $0<a<b$. An rất bối rối nên chưa có câu trả lời ngay được.
:::
:::warning
**Yêu cầu**: Em hãy hãy lập trình giúp An giải đáp câu đố của Bình.
**Dữ liệu vào**: Lưu trong tệp `nguyento.inp` gồm 2 số nguyên dương $a,\ b$ cách nhau một khoảng trắng.
**Dữ liệu ra**: Ghi ra tệp `nguyento.out` một số nguyên thể hiện số lượng số nguyên tố trong đoạn $[a,\ b]$.
:::
**Ví dụ**:
| nguyento.inp | nguyento.out | Giải thích |
| - | - | - |
| 2 7 | 4 | Từ 2 đến 7 có 4 số nguyên tố là: 2, 3, 5, 7 |
**Ràng buộc**:
- 75% test tương ứng với 75% số điểm có $1 \leq a < b \leq 10^3$,
- 25% test tương ứng với 25% số điểm có $10^3 \leq a < b \leq 10^7$.
---
## :books: ĐỀ SỐ 5: ĐỀ THI HSG BÌNH PHƯỚC (2023 - 2024)
**<p style="text-align: center;font-weight: bold;font-size: 2rem">SỞ GIÁO DỤC VÀ ĐÀO TẠO BÌNH PHƯỚC</p>**
<p style="text-align: center;font-weight: bold;">KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH THCS</p>
<p style="text-align: center;">NĂM HỌC 2023-2024</p>
<p style="text-align: center;">Môn: TIN HỌC</p>
<p style="text-align: center;">Ngày thi: 09/03/2024</p>
---
<p style="text-align: center;">(Đề thi có 03 trang)</p>
<p style="text-align: center;">Thời gian làm bài: 150 phút (không kể thời gian giao đề)</p>
### TỔNG QUAN ĐỀ THI
| Bài | Tên bài | Tên file chương trình | Tên file dữ liệu vào | Tên file kết quả | Điểm |
| - | - | - | - | - | - |
| 1 | CẶP SỐ MAY MẮN | MAYMAN.\* | MAYMAN.INP | MAYMAN.OUT | 4,0 |
| 2 | ĐẾM SỐ | DEMSO.\* | DEMSO.INP | DEMSO.OUT | 6,0 |
| 3 | CÂY CẢNH | CAYCANH.\* | CAYCANH.INP | CAYCANH.OUT | 7,0 |
| 4 | HỘP QUÀ | HOPQUA.\* | HOPQUA.INP | HOPQUA.OUT | 3,0 |
***Dấu \* được thay thế bởi `pas`, `py` hoặc `cpp` của ngôn ngữ lập trình được sử dụng tương ứng là Pascal, Python hoặc C++.***
### :question: Bài 1: Cặp số may mắn
:::info
Trong giờ học Toán, cô Mai đưa ra định nghĩa như sau: “Hai số nguyên dương $a,\ b$ được gọi là **cặp số may mắn** khi tổng của $a$ và $b$ có chữ số cuối cùng chia hết cho số nguyên dương $c$ cho trước”.
:::
:::warning
Em hãy lập trình kiểm tra xem $a,\ b$ có phải là cặp số may mắn không?
**Dữ liệu vào** đọc từ tệp `MAYMAN.INP`: gồm 3 số nguyên dương $a,\ b,\ c$ nằm trên cùng một dòng, mỗi số cách nhau một dấu cách $(a, b \le 10^9;\ c \le 9)$.
**Dữ liệu ra** ghi vào tệp `MAYMAN.OUT`: gồm một số duy nhất là kết quả tính được. Nếu $a,\ b$ là cặp số may mắn thì ghi chữ số cuối cùng của tổng 2 số đó, ngược lại ghi phần dư của chữ số cuối cùng của tổng 2 số đó chia cho số $c$.
:::
**Ví dụ**:
| MAYMAN.INP | MAYMAN.OUT | Giải thích |
| - | - | - |
| 4 8 3 | 2 | Tổng $4+8=12$. Chữ số cuối cùng là $2$. Phần dư của phép chia $2$ cho $3$ là $2$ |
| 3 6 9 | 9 | Tổng $3+6=9$. Chữ số cuối cùng là $9$ chia hết cho $9$ |
### :question: Bài 2: Đếm số
:::info
Hằng và Nga đang ngồi đọc về một chuyên đề học tập. Nội dung chuyên đề gồm nhiều trang văn bản, trong mỗi trang văn bản gồm các kí tự chữ cái và chữ số. Hằng là một người yêu các con số, nên muốn đếm xem trong văn bản đó có bao nhiêu kí tự chữ số.
:::
:::warning
Em hãy lập trình giúp Hằng đếm xem trong văn bản đó có bao nhiêu kí tự chữ số.
**Dữ liệu vào** đọc từ tệp `DEMSO.INP`: gồm 1 xâu kí tự (biết xâu kí tự gồm 3 thành phần: kí tự chữ số, kí tự chữ cái in thường và kí tự chữ cái in hoa).
**Dữ liệu ra** ghi vào tệp `DEMSO.OUT`: một số duy nhất là kết quả tính được.
:::
**Ví dụ**:
| DEMSO.INP | DEMSO.OUT | Giải thích |
| - | - | - |
| LKNGFGS**1**FSF**65**gssHKuiHH | 3 | Trong văn bản bên có 3 kí tự chữ số là 1, 6, 5 |
**Ràng buộc**:
- 70% test tương ứng với 70% số điểm của bài, ứng với số lượng kí tự trong tệp $\le 255$.
- 30% test tương ứng với 30% số điểm của bài, ứng với số lượng kí tự trong tệp $> 255$.
### :question: Bài 3: Cây cảnh
:::info
Nhà vườn Cảnh Hằng chuyên cho thuê cây cảnh dịp tết nguyên đán. Sau tết nhà vườn thu gom lại số lượng các cây cảnh đã cho thuê, nhưng số lượng cây cảnh nhiều nhà vườn vận chuyển không kịp nên phải thuê thêm các phương tiện bên ngoài để vận chuyển về. Do số lượng xe vận chuyển nhiều nên nhà vườn không kịp phân loại cây cảnh mà chỉ tập kết các cây cảnh chở về để vào một khu vực. Để thuận tiện cho việc quản lí, chăm sóc và tính giá tiền cho thuê cây cảnh (mỗi cây cảnh đều được đánh số, nếu cây cảnh cùng loại, cùng giá tiền cho thuê thì được đánh cùng một số, trong nhà vườn có nhiều cây cảnh cùng đánh 1 số)
:::
:::warning
Em hãy lập trình giúp nhà vườn Cảnh Hằng sắp xếp lại cây cảnh cho hợp li theo loại để tiện chăm sóc, loại cây cảnh được sắp xếp từ thấp đến cao.
**Dữ liệu vào** đọc từ tệp `CAYCANH.INP`: dòng thứ nhất chứa số nguyên dương $N$ là số lượng cây cảnh cho thuê, dòng tiếp theo chứa $N$ số nguyên dương $a_1, a_2,..., a_N$ các số cách nhau một dấu cách, dãy các số $a_1, a_2,..., а_N$ là số kí hiệu của từng cây cảnh.
**Dữ liệu ra** ghi vào tệp `CAYCANH.OUT`: là số lượng cây cảnh đã được sắp xếp lại theo loại, theo thứ tự tăng dần.
:::
**Ví dụ**:
| CAYCANH.INP | CAYCANH.OUT | Giải thích |
| - | - | - |
| 5<br />2 1 2 5 1 | 1 2 5 | Có 5 cây cảnh được tập kết, gồm 3 loại cây là 1 2 5 |
| 4<br />2 1 4 5 | 1 2 4 5 | Có 4 cây cảnh được tập kết, gồm 4 loại cây được sắp xếp là 1 2 4 5 |
**Ràng buộc**:
- 60% test tương ứng với 60% số điểm của bài, ứng với $n \le 10^3,\ a_i \le 10^3$.
- 20% test tương ứng với 20% số điểm của bài, ứng với $n \le 10^6,\ a_i \le 10^6$.
- 20% test tương ứng với 20% số điểm của bài, ứng với $n \le 10^6,\ a_i \le 10^9$.
### :question: Bài 4: Hộp quà
:::info
Do có thành tích cao trong học tập, Hùng được các mạnh thường quân thưởng rất nhiều phần quà. Để tăng phần hấp dẫn các mạnh thường quân để các phần thưởng trong các hộp được đánh số, hộp có phần thưởng là hộp được kí hiệu bằng một số nguyên tố nào đó (một số nguyên dương được gọi là một số nguyên tố khi nó chỉ có 2 ước số là 1 và chính nó), các hộp còn lại không kí hiệu bằng các số nguyên tố thì không có phần thưởng. Thấy số lượng hộp quá nhiều, Hùng hồi hộp không biết mình nhận được bao nhiêu phần thưởng từ các hộp kia.
:::
:::warning
Em hãy lập trình đếm xem Hùng có thể nhận được bao nhiêu hộp có phần thưởng.
**Dữ liệu vào** đọc từ tệp `HOPQUA.INP`: dòng thứ nhất chứa số nguyên dương $n$, dòng tiếp theo chứa $n$ số nguyên dương $a_1, a_2, ..., a_n$ các số cách nhau một dấu cách, dãy số $a_1, a_2, ..., a_n$ là dãy các số kí hiệu của các hộp.
**Dữ liệu ra** được ghi vào tệp `HOPQUA.OUT`: một số duy nhất là kết quả tính được.
:::
**Ví dụ**:
| HOPQUA.INP | HOPQUA.OUT | Giải thích |
| - | - | - |
| 6<br />1 2 3 5 8 9 | 3 | Có 6 hộp, trong đó có 3 hộp có phần thưởng là 2, 3, 5 vì 2, 3, 5 là các số nguyên tố, còn 1, 8, 9 không phải là số nguyên tố nên trong 3 hộp này không có phần thưởng. |
**Ràng buộc**:
- 50% test tương ứng với 50% số điểm của bài, ứng với $n \le 10^3,\ a_i \le 10^3$.
- 30% test tương ứng với 30% số điểm của bài, ứng với $n \le 10^4,\ a_i \le 10^4$.
- 20% test tương ứng với 20% số điểm của bài, ứng với $n \le 10^6,\ a_i \le 10^6$.
---