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

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

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

ĐỀ SỐ 24 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
1Hai tấm thảmHCN.*HCN.INPHCN.OUT4
2Tòa nhà cao hơn gần nhấtGANLONHON.*GANLONHON.INPGANLONHON.OUT5
3Nhiệt độ cao nhất theo tuầnCUASO.*CUASO.INPCUASO.OUT5
4Xâu con chung dài nhấtLCS.*LCS.INPLCS.OUT6

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

Trên sàn nhà (coi như mặt phẳng tọa độ) có hai tấm thảm hình chữ nhật với các cạnh song song với các trục tọa độ. Tấm thứ nhất có góc dưới trái (x1, y1) và góc trên phải (x2, y2); tấm thứ hai có góc dưới trái (u1, v1) và góc trên phải (u2, v2).

Yêu cầu: Tính diện tích phần hai tấm thảm chồng lên nhau và diện tích phần sàn được phủ (bởi ít nhất một tấm thảm).

Dữ liệu vào: Từ file văn bản HCN.INP gồm một dòng chứa tám số nguyên x1, y1, x2, y2, u1, v1, u2, v2 (x1 nhỏ hơn x2, y1 nhỏ hơn y2, u1 nhỏ hơn u2, v1 nhỏ hơn v2).

Kết quả: Ghi ra file văn bản HCN.OUT gồm hai dòng: diện tích phần chồng lên nhau và diện tích phần được phủ.

Ví dụ:

HCN.INPHCN.OUTGiải thích
0 0 4 3 2 1 6 54
24
Phần chung là hình chữ nhật từ (2, 1) đến (4, 3). 12 + 16 − 4 = 24.

Ràng buộc:

  • Có 50% số test với các tọa độ có giá trị tuyệt đối không quá 50.
  • Có 50% số test với các tọa độ có giá trị tuyệt đối không quá 109.

Bài 2. Tòa nhà cao hơn gần nhất (5 điểm)

Phần tiêu đề “Bài 2. Tòa nhà cao hơn gần nhất (5 điểm)”

Trên một con phố có n tòa nhà xếp thành hàng từ trái sang phải, tòa thứ i cao ai mét. Từ nóc mỗi tòa nhà, người ta nhìn sang phải và muốn biết tòa nhà đầu tiên cao hơn hẳn nó.

Yêu cầu: Với mỗi tòa nhà, cho biết chiều cao của tòa nhà gần nhất bên phải cao hơn nó, hoặc −1 nếu không có.

Dữ liệu vào: Từ file văn bản GANLONHON.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 dương a1, a2, …, an (ai ≤ 109).

Kết quả: Ghi ra file văn bản GANLONHON.OUT một dòng gồm n số là đáp án cho từng tòa nhà.

Ví dụ:

GANLONHON.INPGANLONHON.OUT
7
5 3 8 1 4 9 2
8 8 9 4 9 -1 -1

Ràng buộc:

  • Có 40% số test với n ≤ 2000.
  • Có 60% số test với n ≤ 2 × 105.

Bài 3. Nhiệt độ cao nhất theo tuần (5 điểm)

Phần tiêu đề “Bài 3. Nhiệt độ cao nhất theo tuần (5 điểm)”

Trạm khí tượng ghi lại nhiệt độ của n ngày liên tiếp: a1, a2, …, an. Với mỗi “tuần” gồm k ngày liên tiếp (ngày 1 đến ngày k, ngày 2 đến ngày k + 1, …, ngày n − k + 1 đến ngày n), cần biết nhiệt độ cao nhất.

Yêu cầu: In ra nhiệt độ cao nhất của từng đoạn k ngày liên tiếp.

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

  • Dòng đầu tiên chứa hai số nguyên dương n và k (k ≤ 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 CUASO.OUT một dòng gồm n − k + 1 số.

Ví dụ:

CUASO.INPCUASO.OUT
8 3
1 3 -1 -3 5 3 6 7
3 3 5 5 6 7

Ràng buộc:

  • Có 40% số test với n ≤ 2000.
  • Có 60% số test với n ≤ 2 × 105.

Một xâu con (không cần liên tiếp) của xâu S nhận được bằng cách xóa đi một số kí tự của S (có thể không xóa) và giữ nguyên thứ tự các kí tự còn lại. Ví dụ bcb là xâu con của abcbdab.

Yêu cầu: Cho hai xâu A và B, tìm độ dài của xâu dài nhất vừa là xâu con của A vừa là xâu con của B.

Dữ liệu vào: Từ file văn bản LCS.INP gồm hai dòng lần lượt chứa hai xâu A, B (chỉ gồm chữ cái in thường).

Kết quả: Ghi ra file văn bản LCS.OUT một số nguyên là độ dài tìm được.

Ví dụ:

LCS.INPLCS.OUTGiải thích
abcbdab
bdcaba
4Ví dụ xâu bcba hoặc bdab.

Ràng buộc:

  • Có 30% số test với độ dài mỗi xâu không quá 12.
  • Có 70% số test với độ dài mỗi xâu không quá 1000.