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

Đề số 20 - Ôn thi HSG Tin học THCS

BỘ ĐỀ ÔN THI HỌC SINH GIỎI TIN HỌC THCS Bumbii Academy

ĐỀ SỐ 20 Thời gian làm bài: 150 phút
4 bài, tổng 20 điểm


BàiTên bàiFile chương trìnhFile dữ liệu vàoFile kết quảĐiểm
1Đếm năm nhuậnNAMNHUAN.*NAMNHUAN.INPNAMNHUAN.OUT3
2Bảng xếp hạngXEPHANG.*XEPHANG.INPXEPHANG.OUT5
3Đoạn tăng dài nhấtDAYTANG.*DAYTANG.INPDAYTANG.OUT6
4Dãy con tăng dài nhấtLIS.*LIS.INPLIS.OUT6

Dấu * được thay bằng py hoặc cpp tùy theo ngôn ngữ lập trình sử dụng.

Năm nhuận là năm chia hết cho 400, hoặc chia hết cho 4 nhưng không chia hết cho 100. Ví dụ 2000 và 2024 là năm nhuận, 1900 và 2023 thì không.

Yêu cầu: Đếm số năm nhuận từ năm a đến năm b (tính cả a và b).

Dữ liệu vào: Từ file văn bản NAMNHUAN.INP gồm một dòng chứa hai số nguyên dương a ≤ b.

Kết quả: Ghi ra file văn bản NAMNHUAN.OUT một số nguyên là số năm nhuận.

Ví dụ:

NAMNHUAN.INPNAMNHUAN.OUTGiải thích
1896 190421896 và 1904; năm 1900 không nhuận.
1 2024491

Ràng buộc:

  • Có 50% số test với b ≤ 106.
  • Có 50% số test với b ≤ 1018.

Kết thúc kì thi, ban tổ chức có danh sách n thí sinh gồm tên (viết liền, chỉ gồm chữ cái tiếng Anh, các tên đôi một khác nhau) và điểm (số nguyên).

Yêu cầu: Lập bảng xếp hạng: sắp xếp theo điểm giảm dần; cùng điểm thì theo tên tăng dần (so sánh theo mã ASCII, tức chữ in hoa đứng trước chữ in thường). Thí sinh cùng điểm có cùng hạng; hạng của một thí sinh bằng 1 cộng số thí sinh có điểm cao hơn hẳn.

Dữ liệu vào: Từ file văn bản XEPHANG.INP gồm:

  • Dòng đầu tiên chứa số nguyên dương n.
  • n dòng tiếp theo, mỗi dòng chứa tên và điểm của một thí sinh (0 ≤ điểm ≤ 105).

Kết quả: Ghi ra file văn bản XEPHANG.OUT gồm n dòng theo thứ tự của bảng xếp hạng, mỗi dòng ghi hạng, tên và điểm.

Ví dụ:

XEPHANG.INPXEPHANG.OUT
5
Minh 85
An 92
Lan 85
Binh 70
Hoa 92
1 An 92
1 Hoa 92
3 Lan 85
3 Minh 85
5 Binh 70

Ràng buộc:

  • Có 50% số test với n ≤ 1000.
  • Có 50% số test với n ≤ 105.

Cho dãy n số nguyên a1, a2, …, an. Được phép xóa tối đa một phần tử khỏi dãy (hoặc không xóa phần tử nào).

Yêu cầu: Tìm độ dài lớn nhất của một đoạn các phần tử liên tiếp tăng ngặt trong dãy thu được.

Dữ liệu vào: Từ file văn bản DAYTANG.INP gồm:

  • Dòng đầu tiên chứa số nguyên dương n.
  • Dòng thứ hai chứa n số nguyên a1, a2, …, an (|ai| ≤ 109).

Kết quả: Ghi ra file văn bản DAYTANG.OUT một số nguyên là độ dài lớn nhất.

Ví dụ:

DAYTANG.INPDAYTANG.OUTGiải thích
7
1 3 5 4 7 8 2
5Xóa số 4 được đoạn 1, 3, 5, 7, 8.

Ràng buộc:

  • Có 30% số test với n ≤ 100.
  • Có 30% số test với n ≤ 3000.
  • Có 40% số test với n ≤ 2 × 105.

Cho dãy n số nguyên a1, a2, …, an. Một dãy con được tạo bằng cách xóa đi một số phần tử (có thể không xóa phần tử nào) và giữ nguyên thứ tự các phần tử còn lại; các phần tử của dãy con không cần đứng liền nhau trong dãy ban đầu.

Yêu cầu: Tìm độ dài của dãy con tăng ngặt dài nhất.

Dữ liệu vào: Từ file văn bản LIS.INP gồm:

  • Dòng đầu tiên chứa số nguyên dương n.
  • Dòng thứ hai chứa n số nguyên a1, a2, …, an (|ai| ≤ 109).

Kết quả: Ghi ra file văn bản LIS.OUT một số nguyên là độ dài dãy con tăng dài nhất.

Ví dụ:

LIS.INPLIS.OUTGiải thích
8
10 9 2 5 3 7 101 18
4Ví dụ dãy con 2, 3, 7, 18.

Ràng buộc:

  • Có 30% số test với n ≤ 15.
  • Có 30% số test với n ≤ 2000.
  • Có 40% số test với n ≤ 105.