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

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

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

ĐỀ SỐ 05 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
1Ba thanh treTAMGIAC.*TAMGIAC.INPTAMGIAC.OUT3
2Chính phương và lũy thừa của 2LUYTHUA.*LUYTHUA.INPLUYTHUA.OUT5
3Phiếu bầu chọnTANSUAT.*TANSUAT.INPTANSUAT.OUT6
4Tổng các số chính phươngTONGBP.*TONGBP.INPTONGBP.OUT6

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

Bạn Minh có ba thanh tre dài a, b, c (đơn vị cm) và muốn ghép chúng thành khung một hình tam giác (không được cắt thanh tre).

Yêu cầu: Cho biết ba thanh tre có ghép được thành tam giác hay không; nếu được thì cho biết chu vi và tam giác đó là tam giác vuông, nhọn hay tù.

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

Kết quả: Ghi ra file văn bản TAMGIAC.OUT:

  • Nếu không ghép được tam giác, ghi KHONG.
  • Ngược lại, ghi chu vi tam giác và một trong các từ VUONG, NHON, TU, cách nhau một dấu cách.

Ví dụ:

TAMGIAC.INPTAMGIAC.OUTGiải thích
3 5 412 VUONG32 + 42 = 52.
3 5 8KHONG3 + 5 = 8, ba thanh nằm thẳng hàng.
4 5 817 TU82 = 64 > 42 + 52 = 41.

Ràng buộc:

  • Có 50% số test với a, b, c ≤ 1000.
  • Có 50% số test với a, b, c ≤ 109.

Bài 2. Chính phương và lũy thừa của 2 (5 điểm)

Phần tiêu đề “Bài 2. Chính phương và lũy thừa của 2 (5 điểm)”

Cho số nguyên dương N.

Yêu cầu:

  1. Tìm số chính phương lớn nhất không vượt quá N.
  2. Tìm số tự nhiên x lớn nhất và số tự nhiên y sao cho 2x + y = N.

Dữ liệu vào: Từ file văn bản LUYTHUA.INP gồm một số nguyên dương N.

Kết quả: Ghi ra file văn bản LUYTHUA.OUT gồm hai dòng: dòng thứ nhất ghi số chính phương tìm được; dòng thứ hai ghi hai số x và y.

Ví dụ:

LUYTHUA.INPLUYTHUA.OUTGiải thích
1716
4 1
16 = 42; 17 = 24 + 1.
6464
6 0
64 vừa là số chính phương, vừa là lũy thừa của 2.

Ràng buộc:

  • Có 50% số test với N ≤ 109.
  • Có 50% số test với N ≤ 1018.

Trong cuộc bình chọn tiết mục văn nghệ, mỗi bạn ghi lên phiếu một số nguyên (mã số tiết mục; do ghi vội nên có cả số 0 và số âm). Ban tổ chức thu được n phiếu a1, a2, …, an.

Yêu cầu:

  1. Tìm số nguyên dương nhỏ nhất không được ghi trên phiếu nào (để làm mã số cho tiết mục mới).
  2. Liệt kê các số được ghi trên từ hai phiếu trở lên, kèm số phiếu ghi số đó. Sắp xếp theo số phiếu giảm dần; nếu bằng nhau thì theo giá trị tăng dần.

Dữ liệu vào: Từ file văn bản TANSUAT.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 TANSUAT.OUT:

  • Dòng đầu tiên ghi số nguyên dương nhỏ nhất tìm được ở câu 1.
  • Các dòng tiếp theo, mỗi dòng ghi một số và số phiếu ghi số đó, theo thứ tự đã nêu. Nếu không có số nào xuất hiện từ hai lần trở lên thì ghi -1.

Ví dụ:

TANSUAT.INPTANSUAT.OUTGiải thích
7
5 -3 2 5 -3 1 5
3
5 3
-3 2
Số 1, 2 đã có, 3 chưa có. Số 5 xuất hiện 3 lần, số −3 xuất hiện 2 lần.

Ràng buộc:

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

Bài 4. Tổng các số chính phương (6 điểm)

Phần tiêu đề “Bài 4. Tổng các số chính phương (6 điểm)”

Số chính phương là bình phương của một số nguyên dương: 1, 4, 9, 16, 25, … Mỗi số nguyên dương n đều có thể viết thành tổng của một số số chính phương (các số hạng có thể bằng nhau). Ví dụ: 60 = 49 + 9 + 1 + 1 = 36 + 16 + 4 + 4.

Yêu cầu: Tìm số lượng số hạng ít nhất khi viết n thành tổng các số chính phương.

Dữ liệu vào: Từ file văn bản TONGBP.INP gồm một số nguyên dương n.

Kết quả: Ghi ra file văn bản TONGBP.OUT một số nguyên là số lượng số hạng ít nhất.

Ví dụ:

TONGBP.INPTONGBP.OUTGiải thích
604Không thể viết 60 thành tổng của 1, 2 hay 3 số chính phương.
13213 = 9 + 4.

Ràng buộc:

  • Có 40% số test với n ≤ 104.
  • Có 60% số test với n ≤ 1012.