Tin học trẻ B - Tỉnh Bắc Giang 2024

Bộ đề bài

1. Trò chơi trên vòng tròn - Tin học trẻ tỉnh Bắc Giang 2024

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: CIRCLE.inp Output: CIRCLE.out

Có một nhóm bạn gồm \(n\) người bạn, được đánh số từ \(1\) đến \(n\) xếp thành một vòng tròn theo nguyên tắc: bên phải bạn số \(1\) là bạn số \(2\), bên phải bạn số \(2\) là bạn số \(3\), \(\ldots\) bên phải bạn số \(n - 1\) là bạn số \(n\) và bên phải bạn số \(n\) là bạn số \(1\). Nhóm bạn này chơi trò đếm số theo chiều kim đồng hồ, bắt đầu đếm từ bạn có số thứ tự là \(1\). Nghĩa là bạn số \(1\) sẽ đếm số \(1\), bạn số \(2\) sẽ đếm số \(2\), \(\ldots\) bạn số \(n\) sẽ đếm số \(n\), rồi quay lại bạn số \(1\) sẽ đếm số \(n + 1\), bạn số \(2\) sẽ đếm số \(n + 2\), \(\ldots\)

Tuy nhiên, vì thấy trò chơi quá đơn giản nên thầy giáo đã quyết định đố các bạn bằng cách nâng cấp độ khó cho trò chơi. Giờ đây, thay vì bắt đầu từ bạn số \(1\) đếm, bạn thứ \(k\) bất kì được chỉ định bất kì sẽ bắt đầu đếm đầu tiên. Hỏi số thứ \(m\) sẽ được đếm bởi bạn số mấy?

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\) \((n \leq 10^{15})\).
  • Dòng thứ hai chứa số nguyên dương \(m\) \((m \leq 10^{15})\).
  • Dòng thứ ba chứa số nguyên dương \(k\) \((k \leq n)\).

Output

  • Gồm một dòng duy nhất chứa một số nguyên là số thứ tự của bạn đếm số thứ \(m\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n, m \leq 10^{5}\).
  • Subtask \(2\) (\(30\%\) số điểm): \(n \leq 10^{5}\).
  • Subtask \(3\) (\(20\%\) số điểm): \(k = 1\).
  • Subtask \(4\) (\(20\%\) số điểm): không có ràng buộc gì thêm.

Example

Test 1

Input
4
5
1
Output
1
Note

Bạn thứ \(1\) được chỉ định là bạn bắt đầu đếm số:

  • Bạn số \(1\) đếm số \(1\).
  • Bạn số \(2\) đếm số \(2\).
  • Bạn số \(3\) đếm số \(3\).
  • Bạn số \(4\) đếm số \(4\).
  • Bạn số \(1\) đếm số \(5\).

Vậy bạn số \(1\) sẽ đếm số \(5\).

2. Số tròn trịa - Tin học trẻ tỉnh Bắc Giang 2024

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một số được coi là tròn trịa khi và chỉ khi nó chỉ có duy nhất \(1\) chữ số duy nhất khác \(0\). Ví dụ như \(100, 200, 400, 5000, \ldots\) là các số tròn trịa còn \(412, 230, 152, 15324, \ldots\) thì không.

Yếu cầu: cho một số nguyên \(n\). Tìm số nguyên \(x\) tròn trịa lớn nhất sao cho \(x \leq n\).

Input

  • Một dòng duy nhất chứa một số nguyên dương \(n\) \((n \leq 10^{100})\).

Output

  • Gồm một dòng duy nhất chứa một số nguyên \(x\) là kết quả của bài toán.

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(n \leq 10^{6}\).
  • Subtask \(2\) (\(30\%\) số điểm): \(n \leq 10^{18}\).
  • Subtask \(3\) (\(50\%\) số điểm): không có ràng buộc gì thêm.

Example

Test 1

Input
101
Output
100

3. Tích còn thiếu - Tin học trẻ tỉnh Bắc Giang 2024

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho hai số nguyên dương \(n, m\) và mảng \(a\) gồm \(n\) số nguyên dương phân biệt \(a_{1}, a_{2}, \ldots, a_{n}\). Tính tích các số nằm trong khoảng từ \(1\) đến \(m\) mà không thuộc mảng \(a\). Do kết quả có thể rất lớn, bạn cần đưa ra kết quả sau khi chia lấy phần dư cho \(10^{9} + 7\).

Input

  • Dòng thứ nhất chứa hai số nguyên dương \(n, m\) \((1 \leq n \leq m \leq 10^{5})\).
  • Dòng thứ hai chứa \(n\) số nguyên dương phân biệt \(a_{1}, a_{2}, \ldots, a_{n}\) \((1 \leq a_{i} \leq m)\).

Output

  • Gồm một dòng duy nhất chứa một số nguyên là kết quả của bài toán.

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(m \leq 50\).
  • Subtask \(2\) (\(30\%\) số điểm): \(m \leq 120\).
  • Subtask \(3\) (\(20\%\) số điểm): không có ràng buộc gì thêm.

Example

Test 1

Input
3 5
1 2 4
Output
15
Note

Các số còn thiếu là \(3, 5\) nên tích các số là \(3 \times 5 = 15\)

4. Chia hết cho 3 - Tin học trẻ tỉnh Bắc Giang 2024

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bạn được cho một mảng \(a\) gồm \(n\) (\(n\) chia hết cho \(3\)) phần tử. Bạn được thực hiện vô số thao tác sau: tăng hoặc giảm \(1\) phần tử bất kỳ lên hoặc xuống \(1\) đơn vị. Gọi \(c_{0}, c_{1}\)\(c_{2}\) lần lượt là số lượng các phần tử trong mảng \(a\) khi chia lấy dư cho 3 có số dư bằng \(0, 1\)\(2\). Một mảng được gọi là cân đối khi \(c_{0} = c_{1} = c_{2}\).

Yêu cầu: bạn hãy tìm cách cân đối mảng \(a\) ban đầu bằng cách thực hiện \(0\) hoặc nhiều thao tác và in ra số thao tác ít nhất để cân đối mảng \(a\).

Input

  • Dòng thứ nhất chứa hai số nguyên dương \(n\) \((1 \leq n \leq 5 \times 10^{5}, n \mod 3 = 0)\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_{1}, a_{2}, \ldots, a_{n}\) \((0 \leq a_{i} \leq 10^{9})\).

Output

  • Gồm một dòng duy nhất chứa một số nguyên là số thao tác ít nhất để cân đối mảng.

Scoring

  • Subtask \(1\) (\(10\%\) số điểm): \(n = 3\).
  • Subtask \(2\) (\(40\%\) số điểm): \(a_{i} \leq 2\).
  • Subtask \(3\) (\(50\%\) số điểm): không có ràng buộc gì thêm.

Example

Test 1

Input
6
5 3 8 9 11 34
Output
1
Note

Ta giảm phần tử đầu tiên đi một đơn vị, khi đó dãy sẽ trở thành \(4, 3, 8, 9, 11, 34\)