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

HSG THPT Đồng Nai 2025-2026 (Bảng B)

SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỒNG NAI ĐỀ THI CHÍNH THỨC
(Đề thi này gồm 3 trang, có 5 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 B - Ngày thi: 22/01/2026
Thời gian: 180 phút (không kể thời gian giao đề)


Tên bàiTên tệp chương trìnhTên tệp dữ liệu vàoTên tệp dữ liệu ra
Số may mắnSOMM.*SOMM.INPSOMM.OUT
Hội trạiHOITRAI.*HOITRAI.INPHOITRAI.OUT
Thiết bị bayDRONE.*DRONE.INPDRONE.OUT
Số nguyên tốNGUYENTO.*NGUYENTO.INPNGUYENTO.OUT
RobotROBOT.*ROBOT.INPROBOT.OUT

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:

Một số tự nhiên N được xem là số may mắn nếu chữ số hàng đơn vị của nó là số 9.

Yêu cầu: Kiểm tra xem số tự nhiên N có phải là số may mắn hay không?

Input: Đọc dữ liệu từ tệp SOMM.INP gồm một số nguyên N (1 ≤ N ≤ 10⁶).

Output: Ghi ra tệp SOMM.OUT số 1 nếu N là số may mắn, ngược lại ghi số 0.

Ví dụ:

SOMM.INPSOMM.OUT
20291
20260

Trong hội trại 26 tháng 03 thường niên năm 2026, ban tổ chức có tổ chức trò chơi lớn, các đội tham gia đều phải làm nhiệm vụ giải mật thư. Mỗi đội được phát cho một xâu kí tự gồm các kí tự số và chữ cái trong bảng chữ cái tiếng Anh có độ dài không quá 100 kí tự. Từ xâu kí tự đã cho, mỗi đội phải tìm ra được khóa của xâu. Khóa của xâu là một số nguyên dương K được tìm bằng cách cộng các số (có giới hạn giá trị nhỏ hơn 10000) trong xâu đã cho.

Yêu cầu: Hãy xác định giá trị K là tổng các số có trong xâu.

Input: Đọc dữ liệu từ tệp HOITRAI.INP gồm một xâu kí tự.

Output: Ghi ra tệp HOITRAI.OUT số nguyên dương K tìm được.

Ví dụ:

HOITRAI.INPHOITRAI.OUTGiải thích
Lop10thihocsinhgioidatgiai2captinh1210 + 2 = 12

Sau khi cơn lũ đi qua, có N ngôi nhà đánh số từ 1 đến N cần được cứu trợ, ngôi nhà thứ i cần Aᵢ gói hàng cứu trợ. Chính quyền xã huy động được tối đa M thiết bị bay không người lái có cùng một tải trọng. Tuy nhiên do điều kiện địa hình nên có một số ngôi nhà mà thiết bị bay không thể tiếp cận. Khả năng tiếp cận ngôi nhà thứ i là Bᵢ, trong đó Bᵢ = 1 nếu thiết bị bay có thể tiếp cận ngôi nhà để thả hàng, ngược lại thì Bᵢ = 0. Một thiết bị bay chở tối đa K gói hàng sẽ giao cho dãy các ngôi nhà liên tục nhưng nếu gặp ngôi nhà không thể tiếp cận thì sẽ quay trở về, để cho thiết bị bay khác tiếp tục. Mỗi thiết bị bay chỉ bay đúng một lần duy nhất.

Yêu cầu: Hãy xác định giá trị K nhỏ nhất sao cho có thể giao đủ hàng cho tất cả các ngôi nhà có thể tiếp cận mà không sử dụng quá M thiết bị bay.

Input: Đọc dữ liệu từ tệp DRONE.INP gồm 3 dòng:

  • Dòng đầu tiên chứa 2 số nguyên dương N, M (1 ≤ M ≤ N ≤ 10⁴).
  • Dòng thứ hai chứa N số nguyên A₁, A₂, …, Aₙ (1 ≤ Aᵢ ≤ 10⁶).
  • Dòng thứ ba chứa N số nguyên B₁, B₂, …, Bₙ (Bᵢ ∈ {0,1}).

Output: Ghi ra tệp DRONE.OUT giá trị K nhỏ nhất tìm được. Trong trường hợp không đủ thiết bị bay hoặc tất cả các ngôi nhà đều không thể tiếp cận thì ghi -1.

Ràng buộc:

  • Subtask 1: M = N
  • Subtask 2: 1 ≤ M, N ≤ 100, Bᵢ = 1
  • Subtask 3: Không ràng buộc gì thêm

Ví dụ:

DRONE.INPDRONE.OUTGiải thích
5 5
1 3 5 2 4
1 1 1 1 1
5Mỗi thiết bị bay sẽ giao hàng cho 1 nhà
7 3
3 4 2 5 1 3 2
1 1 1 1 1 1 1
7Thiết bị bay 1 giao hàng cứu trợ cho nhà 1 và 2
Thiết bị bay 2 giao hàng cứu trợ cho nhà 3 và 4
Thiết bị bay 3 giao hàng cứu trợ cho nhà 5, 6 và 7
7 3
3 4 2 5 1 3 2
1 0 1 0 1 0 1
-1Có 4 nhà cần hàng cứu trợ mà chỉ có 3 thiết bị bay

Trong giờ học toán tại lớp, cô giáo muốn kiểm tra các bạn ai nhanh trí hơn và tính toán nhanh hơn. Cô cho các bạn hai số nguyên dương N và M, các bạn có nhiệm vụ tìm tất cả các số nguyên tố từ N đến M. Sau đó cộng tất cả các chữ số của các số nguyên tố đó lại. Bạn nào làm nhanh và chính xác nhất cô sẽ tặng cho một bông hoa điểm 10.

Yêu cầu: Hãy tính tổng các chữ số của các số nguyên tố tìm được từ N đến M.

Input: Đọc dữ liệu từ tệp NGUYENTO.INP gồm hai số nguyên dương N, M (1 ≤ N < M ≤ 10⁵)

Output: Ghi ra tệp NGUYENTO.OUT tổng các chữ số của tất cả các số nguyên tố tìm được.

Ràng buộc:

  • Subtask 1: 1 ≤ N < M ≤ 10³
  • Subtask 2: Không ràng buộc gì thêm

Ví dụ:

NGUYENTO.INPNGUYENTO.OUTGiải thích
3 2039Các số nguyên tố: 3, 5, 7, 11, 13, 17, 19.
Tổng các chữ số: 3 + 5 + 7 + 1 + 1 + 1 + 3 + 1 + 7 + 1 + 9 = 39

Có N viên gạch vuông bằng nhau xếp sát nhau thành một hàng dài trên mặt phẳng. Trên viên gạch thứ i có ghi một giá trị Aᵢ. Một Robot được đặt ở trên viên gạch thứ nhất, robot sẽ nhảy lên các viên gạch dọc theo hàng và nhảy đến viên gạch cuối cùng (viên gạch thứ N). Tuy nhiên do hạn chế về kỹ thuật và năng lượng, bước nhảy tiếp theo của Robot không thể dài hơn bước vừa nhảy ngay trước đó, tức là nếu Robot đang ở viên gạch thứ i nhảy tới viên gạch thứ j, sau đó từ viên gạch thứ j nhảy tới viên gạch thứ k thì k − j ≤ j − i.

Yêu cầu: Hãy tìm tổng giá trị lớn nhất trên các viên gạch mà Robot nhảy tới. Vị trí xuất phát của Robot là viên đầu tiên, vị trí kết thúc của Robot là viên cuối cùng.

Input: Đọc dữ liệu từ tệp ROBOT.INP gồm 2 dòng:

  • Dòng đầu tiên chứa số nguyên dương N là số lượng viên gạch (1 ≤ N ≤ 10⁴)
  • Dòng thứ hai chứa N giá trị A₁, A₂, …, Aₙ là giá trị trên các viên gạch lần lượt từ viên đầu tiên đến viên cuối cùng (−10⁹ ≤ Aᵢ ≤ 10⁹)

Output: Ghi ra tệp ROBOT.OUT tổng giá trị lớn nhất trên các viên gạch mà Robot nhảy tới.

Ràng buộc:

  • Subtask 1: 1 ≤ N ≤ 20
  • Subtask 2: 20 ≤ N ≤ 500
  • Subtask 3: Không ràng buộc gì thêm

Ví dụ:

ROBOT.INPROBOT.OUTGiải thích
6
1 -1 5 -2 -1 2
7Tổng giá trị các viên gạch mà robot đã nhảy tới: 1 + 5 + (−1) + 2 = 7

Hết