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

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

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

ĐỀ SỐ 03 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
1Xếp chữ sốCHUSO.*CHUSO.INPCHUSO.OUT3
2Tích lớn nhấtTICHMAX.*TICHMAX.INPTICHMAX.OUT5
3Thống kê số lần xuất hiệnXUATHIEN.*XUATHIEN.INPXUATHIEN.OUT6
4Chia kẹo thành các đoạnCHIADAY.*CHIADAY.INPCHIADAY.OUT6

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

Cho số nguyên dương n. Dùng tất cả các chữ số của n (mỗi chữ số dùng đúng một lần), ta có thể xếp lại để được nhiều số khác nhau. Lưu ý một số có từ hai chữ số trở lên không được bắt đầu bằng chữ số 0.

Yêu cầu: Cho biết n có bao nhiêu chữ số, số lớn nhất và số nhỏ nhất có thể xếp được.

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

Kết quả: Ghi ra file văn bản CHUSO.OUT gồm ba dòng lần lượt là số chữ số của n, số lớn nhất và số nhỏ nhất xếp được.

Ví dụ:

CHUSO.INPCHUSO.OUTGiải thích
71684
8761
1678
302005
32000
20003
Số 00023 không hợp lệ vì bắt đầu bằng 0.

Ràng buộc:

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

Trong trò chơi “Nhân đôi may mắn”, mỗi người chơi được phát một dãy n thẻ số, thẻ thứ i ghi số nguyên ai (có thể âm). Người chơi chọn ra hai thẻ khác nhau và nhận số điểm bằng tích hai số ghi trên hai thẻ đó.

Yêu cầu: Tìm số điểm lớn nhất mà người chơi có thể đạt được.

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

  • Dòng đầu tiên chứa số nguyên n (n ≥ 2).
  • Dòng thứ hai chứa n số nguyên a1, a2, …, an.

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

Ví dụ:

TICHMAX.INPTICHMAX.OUTGiải thích
5
4 2 7 1 5
35Chọn hai thẻ 7 và 5.
5
-6 3 -8 1 5
48Chọn hai thẻ −6 và −8, tích là 48 lớn hơn 3 × 5 = 15.

Ràng buộc:

  • Có 30% số test với n ≤ 1000, 0 ≤ ai ≤ 104.
  • Có 30% số test với n ≤ 1000, |ai| ≤ 109.
  • Có 40% số test với n ≤ 105, |ai| ≤ 109.

Bài 3. Thống kê số lần xuất hiện (6 điểm)

Phần tiêu đề “Bài 3. Thống kê số lần xuất hiện (6 điểm)”

Thư viện trường ghi lại mã số của n cuốn sách được mượn trong tháng: a1, a2, …, an (một cuốn sách có thể được mượn nhiều lần nên mã số có thể lặp lại). Cô thủ thư muốn biết mức độ được yêu thích của các đầu sách, nên đặt ra q câu hỏi. Câu hỏi thứ j có dạng: “Có bao nhiêu cuốn sách (mã số khác nhau) được mượn ít nhất kj lần?”

Yêu cầu: Trả lời q câu hỏi của cô thủ thư.

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

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

Kết quả: Ghi ra file văn bản XUATHIEN.OUT gồm q dòng, dòng thứ j là câu trả lời cho câu hỏi thứ j.

Ví dụ:

XUATHIEN.INPXUATHIEN.OUTGiải thích
8 3
1 2 1 4 3 4 5 4
2
3
1
2
1
5
Số lần mượn: sách 1 là 2 lần, sách 4 là 3 lần, các sách 2, 3, 5 mỗi sách 1 lần.

Ràng buộc:

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

Bài 4. Chia kẹo thành các đoạn (6 điểm)

Phần tiêu đề “Bài 4. Chia kẹo thành các đoạn (6 điểm)”

Cô giáo xếp n gói kẹo thành một hàng, gói thứ i có ai viên kẹo. Cô muốn cắt hàng kẹo thành nhiều đoạn liên tiếp (mỗi gói thuộc đúng một đoạn, không được đổi thứ tự các gói) sao cho tổng số kẹo trong mỗi đoạn bằng nhau. Mỗi đoạn sẽ được tặng cho một tổ, nên cô muốn cắt được càng nhiều đoạn càng tốt.

Yêu cầu: Tìm số đoạn nhiều nhất có thể cắt được.

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

Kết quả: Ghi ra file văn bản CHIADAY.OUT một số nguyên là số đoạn nhiều nhất.

Ví dụ:

CHIADAY.INPCHIADAY.OUTGiải thích
8
10 2 6 2 5 2 1 2
3Cắt thành (10), (2, 6, 2), (5, 2, 1, 2), mỗi đoạn 10 viên.
3
1 2 4
1Không cắt được, cả hàng là một đoạn.

Ràng buộc:

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