Bỏ qua để đến nội dung

Bảng B 2023 - Thị xã Đông Triều, Quảng Ninh

HỘI THI TIN HỌC TRẺTHỊ XÃ ĐÔNG TRIỀU NĂM 2023ĐỀ CHÍNH THỨC

ĐỀ 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)


BàiBài 1Bài 2Bài 3
Tệp chương trìnhnum.cpp
num.pas
num.py
count.cpp
count.pas
count.py
strong.cpp
strong.pas
strong.py
Tệp dữ liệu vàonum.inpcount.inpstrong.inp
Tệp dữ liệu ranum.outcount.outstrong.out
Giới hạn thời gian1 giây/test1 giây/test1 giây/test
Giới hạn bộ nhớ1024 MB1024 MB1024 MB
Điểm403030

* 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:

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.inpnum.out
TFFTFFTTF8741
FTFTFT642

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.inpcount.out
2
5
3 2 1 3 3
6
2 2 2 2 1 2
3
5

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.

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.inpstrong.outGiải thích
6
100 40 5 30 10 50
5Cách chia tốt nhất là: Bạn thứ nhất: 100, 5, 10; Bạn thứ hai: 40, 30, 50