PRE THI HUYỆN #03

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Tặng sách Bí kí lập trình 50 (p) 1.0s 1G
2 Nén số 50 (p) 1.0s 1G
3 Giải phương trình 50 (p) 1.0s 1G
4 Hội thao 50 (p) 1.0s 1G

1. Tặng sách Bí kí lập trình

Điểm: 50 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: tangsach.inp Output: tangsach.out

Vào ngày 20/11 /2024 có \(n\) học sinh tới chơi và thăm nhà thầy Luân, các học sinh được đánh số từ \(1\) tới \(n\). Cảm động trước tình cảm của học sinh, thầy Luân đã chuẩn bị \(K\) quyển sách "Bí kíp lập trình" mới, có bìa do chính thấy thiết kế rất đẹp để làm quà tặng cho các em. Để việc tặng quà thêm thú vị, mỗi học sinh bốc thăm một số nguyên dương, học sinh thứ \(i\) bốc được số A[i]. Thầy Luân sẽ tặng quà lần lượt cho các em theo thứ tự từ \(1\) đến \(n\). Nếu đến lượt học sinh thứ \(i\) (\(i =1..n\)) mà thầy còn đủ sách thì học sinh đó sẽ nhận đúng A[i] quyển, ngược lại nếu thầy không còn đủ thì học sinh đó sẽ không được nhận quyển sách nào.

Yêu cầu:

Với mỗi học sinh, hãy xác định xem học sinh đó có được nhận quà hay không.

Dữ liệu gồm:

  • Dòng đầu chứa hai số nguyên dương \(n\)\(K\) \((n \leq 10 ^ 6, K \leq 10 ^ {18})\)
  • Dòng tiếp theo chứa \(n\) số nguyên dương A[1], A[2],..., A[n] ( A[i] \(\leq 10 ^ 9\) với mọi \(i =1..n\)) .

Kết quả:

Ghi ra \(n\) số, số thứ \(i\) bằng \(1\) nếu học sinh thứ \(i\) được nhận quà và bằng \(0\) nếu học sinh thứ \(i\) không được nhận quà (với mọi \(i =1..N\)).

Ví dụ:
TANGSACH.INP
5 10
3 5 3 2 1
TANGSACH.OUT
1 1 0 1 0

2. Nén số

Điểm: 50 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: compress.inp Output: compress.out

Phép nén của một số nguyên dương \(K\) là gán số đó thành số nguyên dương nhỏ nhất mà K không chia hết. Ví dụ phép nén số của 120 là 7, vì 7 là số nguyên dương nhỏ nhất mà 120 không chia hết. Độ nén của một số là số lượng phép nén để số đó thành số 2. Ví dụ số 120 ta có: 120 -> 7 -> 2 vậy độ nén của 120 là 2.

Yêu cầu:

Cho hai số nguyên dương \(A, B\) \((2 < A < B < 10 ^{6})\) . Tính tổng độ nén của các số lớn hơn hoặc bằng \(A\) và nhỏ hơn hoặc bằng \(B\).

Dữ liệu:

vào từ file COMPRESS.INP, gồm một dòng duy nhất chứa hai số \(A\)\(B\).

Kết quả:

ghi ra file COMPRESS.OUT gồm số nguyên duy nhất là kết quả của bài toán.

Ví dụ:
COMPRESS.INP
3 7
COMPRESS.OUT
8

Giải thích

  • Độ nén của 3 là 1;
  • Độ nén của 4 là 2;
  • Độ nên của 5 là 1;
  • Độ nén của 6 là 3;
  • Độ nén của 7 là 1.
  • Tổng độ nén là: 8

3. Giải phương trình

Điểm: 50 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: phuongtrinh.inp Output: phuongtrinh.out

Ký hiệu \(s(x)\) là hàm cho tổng các chữ số của \(x\) viết trong hệ thập phân. Ví dụ s(15) = 6 s(2024) = 8

Yêu cầu

Viết chương trình tìm số nghiệm nguyên dương của phương trình: \(x + s(x) = n\). Ở đây \(n\) là số nguyên dương cho trước, còn \(x\) là ẩn số.

Dữ liệu:

Ghi số nguyên dương \(n\). Dữ liệu đảm bảo rằng \(n \leq 10 ^ 9\) (không cần kiểm tra dữ liệu nhập vào).

Kết quả:

In ra một số nguyên không âm là số nghiệm nguyên dương của phương trình trên.

Ví dụ:
PHUONGTRINH.INP
216
PHUONGTRINH.OUT
2

Giải thích:

Trong ví dụ trên phương trình \(x + s(x) = 216\) có 2 nghiệm là 198 và 207

Ghi chú:

  • Có 60% số lần kiểm tra ứng với 60% số điểm của bài có \(n \leq 1000\)
  • 40% số lần kiểm tra còn lại có \(1000 < n \leq 10 ^ 9\)

4. Hội thao

Điểm: 50 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: hoithao.inp Output: hoithao.out

Trong một đợt tổ chức hội thao cấp tỉnh dành cho học sinh trung học cơ sở, Ban Tổ chức hội thao đã nhận được sự hưởng ứng nhiệt tình của các bạn học sinh đến từ các trường học trung học cơ sở trên địa bàn tỉnh Quảng Bình đăng ký tham gia với nhiều nội dung thi đấu. Có \(n\) học sinh đăng ký tham gia thi đấu tại hội thao. Các nội dung thi đấu được Ban Tổ chức hội thao đánh số từ \(1\) đến \(n\) và được phân loại theo nội dung thi đấu.

Theo kết quả phân loại, nội dung thi đấu thứ \(i\) được đặt tên là \(a_i (1 \leq i \leq n)\). Vì số lượng nội dung thi đấu tại hội thao lần này được học sinh đăng ký rất nhiều và đa dạng, nên việc bố trí trọng tài điều khiển các nội dung thi đấu tương đối khó khăn.

Yêu cầu:

Bạn hãy giúp Ban Tổ chức hội thao xác định số nội dung thi đấu khác nhau và nội dung thi đầu có nhiều học sinh đăng ký nhất trong hội thao lần này.

Dữ liệu: Vào từ file HOITHAO.INP gồm hai dòng

• Dòng đầu tiên: chứa một số nguyên \(n\) \((1 \leq a \leq 10 ^ 6)\).
• Dòng thứ hai: chứa \(n\) số nguyên \(a_1, a_2, …, a_n\), tương ứng với các nội dung mà học sinh đăng ký thi đấu \((1 \leq a_{i} \leq 10 ^ 6, 1 \leq i \leq n)\)

Kết quả: Ghi ra file HOITHAO.INP gồm 2 dòng:

• Dòng thứ nhất: chứa số nguyên duy nhất chính là số nội dung khác nhau mà học sinh đăng ký thi đấu.
• Dòng thứ hai: là số nguyên chính là nội dung thì đầu có nhiều học sinh đăng ký nhất (trường hợp có nhiều nội dung đăng ký nhiều nhất bằng nhau thì đưa ra nội dung ứng với số nhỏ nhất).

Ví dụ:
HOITHAO.INP
6
1 4 4 2 5 4
HOITHAO.OUT
4
4