Bảng B 2023 - Thị xã Đông Triều, Quảng Ninh
ĐỀ THI BẢNG B - KHỐI THCS
Thời gian làm bài: 120 phút, không kể thời gian giao đề
(Đề thi có 02 trang)
Tổng quan về bài thi
Phần tiêu đề “Tổng quan về bài thi”| Bài | Bài 1 | Bài 2 | Bài 3 |
|---|---|---|---|
| Tệp chương trình | num.cpp num.pas num.py | count.cpp count.pas count.py | strong.cpp strong.pas strong.py |
| Tệp dữ liệu vào | num.inp | count.inp | strong.inp |
| Tệp dữ liệu ra | num.out | count.out | strong.out |
| Giới hạn thời gian | 1 giây/test | 1 giây/test | 1 giây/test |
| Giới hạn bộ nhớ | 1024 MB | 1024 MB | 1024 MB |
| Điểm | 40 | 30 | 30 |
* Lưu ý: thí sinh lưu bài thi vào thư mục theo cú pháp: D:\B_SBD_Ho va Ten (Ví dụ: thí sinh Nguyễn Văn B có số báo danh A001 thì tạo thư mục để lưu bài thi là D:\B_A001_Nguyen Van B).
Hãy lập trình giải các bài toán sau:
Bài 1. Tìm số lớn
Phần tiêu đề “Bài 1. Tìm số lớn”Cho một xâu S có độ dài không quá 9 kí tự, các kí tự của xâu S chỉ có thể là kí tự ‘T’ hoặc kí tự ‘F’.
Các số có giá trị từ 1 đến 9 được quy ước xuất hiện dựa vào xâu S như sau:
- Kí tự ‘T’ số xuất hiện là vị trí của kí tự ‘T’
- Kí tự ‘F’ không có số xuất hiện.
Yêu cầu: Hãy tìm một số ghép lớn nhất dựa vào sự xuất hiện theo quy ước trên
Dữ liệu: Vào từ tệp num.inp xâu S.
Kết quả: Ghi ra tệp num.out số ghép lớn nhất thỏa mãn yêu cầu bài toán.
Ví dụ:
| num.inp | num.out |
|---|---|
TFFTFFTTF | 8741 |
FTFTFT | 642 |
Bài 2. Đếm
Phần tiêu đề “Bài 2. Đếm”Một công ty chuyên sản xuất trò chơi điện tử, họ vừa ra mắt người dùng một game X. Game X là trò chơi với thiết kế đơn giản, trong một màn chơi mỗi người chơi sẽ đóng vai một nhân vật có kích thước nhất định ngẫu nhiên. Người chơi có kích thước lớn hơn sẽ loại bỏ được người chơi có kích thước nhỏ hơn (lưu ý rằng hai người chơi có kích thước bằng nhau sẽ không loại bỏ được nhau). Màn chơi sẽ kết thúc nếu như chỉ còn lại những người chơi có kích thước lớn nhất.
Yêu cầu: Hãy lập trình đếm số lượng người chơi còn lại của các màn chơi.
Dữ liệu: Vào từ tệp count.inp gồm các dòng:
- Dòng 1 chứa số nguyên dương t (1 ≤ t ≤ 100) - số lượng màn chơi;
- Dòng thứ nhất của mỗi màn chơi chứa số nguyên n (1 ≤ n ≤ 10⁴) - số lượng người chơi của mỗi màn chơi;
- Dòng thứ hai của mỗi màn chơi chứa n số nguyên a₁, a₂, …, aₙ (1 ≤ aᵢ ≤ 1000) - kích thước nhân vật của mỗi màn chơi.
Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra tệp count.out gồm t dòng, mỗi dòng chứa một số nguyên là số lượng người chơi còn lại của mỗi màn chơi.
| count.inp | count.out |
|---|---|
253 2 1 3 362 2 2 2 1 2 | 35 |
Ràng buộc:
- 70% số test ứng với 70% số điểm của bài có t = 1.
- 30% số test ứng với 30% số điểm của bài không có ràng buộc gì thêm.
Bài 3. Sức mạnh
Phần tiêu đề “Bài 3. Sức mạnh”Hai bạn Tùng và Mạnh cùng nhau chơi một trò chơi với bộ bài ma thuật. Mỗi lá bài đều có chỉ số sức mạnh. Trước khi chơi hai bạn sẽ phải chia bộ bài thành 2 phần sao cho tổng chỉ số sức mạnh giữa hai người là nhỏ nhất. Em hãy lập trình giúp hai bạn chia sao cho công bằng nhé.
Dữ liệu vào từ tệp strong.inp gồm 2 dòng:
- Dòng thứ nhất một số nguyên n là số lá bài trong một bộ bài (1 ≤ n ≤ 20).
- Dòng thứ hai chứa n số nguyên a₁, a₂, …, aₙ là chỉ số sức mạnh của mỗi lá bài, mỗi số cách nhau bởi một dấu cách (1 ≤ aᵢ ≤ 10⁹, 1 ≤ i ≤ 20).
Kết quả ghi ra tệp strong.out một số duy nhất là chỉ số sức mạnh chênh lệch nhỏ nhất sau khi chia thành 2 phần.
Ví dụ:
| strong.inp | strong.out | Giải thích |
|---|---|---|
6100 40 5 30 10 50 | 5 | Cách chia tốt nhất là: Bạn thứ nhất: 100, 5, 10; Bạn thứ hai: 40, 30, 50 |