Contest - 2024.10.19

Bộ đề bài

1. Hình tròn

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

Viết chương trình nhập vào số thực \(R\) là bán kính hình tròn, in ra chu vi và diện tích hình tròn (lấy \(1\) chữ số phần thập phân), với \(\pi = 3.14\).

Input

  • Gồm một dòng chứa một số thực \(R\) \((0 \leq R \leq 10^{4})\) là bán kính hình tròn.

Output

  • Dòng đầu tiên gồm \(1\) số thực là chu vi hình tròn.
  • Dòng tiếp theo gồm \(1\) số thực là diện tích hình tròn.

Example

Test 1

Input
1 
Output
6.3
3.1
Note

Để in ra số chữ số lẻ chính xác trong C++ các em sử dụng lệnh sau:

  • cout << fixed << setprecision (số chữ số lẻ) << Giá trị cần in;
  • Hàm \(setprecision\) nằm trong thư viện iomanip.

Để in ra số chữ số lẻ chính xác trong Python các em sử dụng lệnh sau:

  • hàm format(giá trị, "chuỗi định dạng").
  • \(format(3.1415,".1f")\) là định dạng kiểu số thực với 1 số lẻ.

2. Vận tốc trung bình

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

Viết chương trình nhập vào quãng đường \(s_{1}\) và thời gian \(t_{1}\) của xe \(1\), quãng đường \(s_{2}\) và thời gian \(t_{2}\) của xe \(2\).

Hãy so sánh vận tốc của xe \(1\) với vận tốc của xe \(2\).

Input

  • Một dòng duy nhất là bốn số nguyên \(s_{1}, t_{1}, s_{2}, t_{2}\) \((1 \leq s_{1}, t_{1}, s_{2}, t_{2} \leq 10^{4})\).

Output

  • In ra YES nếu vận tốc xe \(1\) lớn hơn vận tốc xe \(2\). Ngược lại in ra NO.

Example

Test 1

Input
3 2 1 7 
Output
YES

3. [Hàm] - Phép chia

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

Xét biểu thức: \(N = q \times K + r\), với \(N,K\) là hai số nguyên cho trước. Hãy tính và đưa ra giá trị \(q + r\), lưu ý bạn phải phân tích sao cho \(q\) lớn nhất có thể.

Chi tiết cài đặt

Bạn cần cài đặt hàm sau:

C++
long long solve(long long N, long long K)
  • \(N\): số nguyên dương \(N\).
  • \(K\): số nguyên dương \(K\).
  • Hàm này cần trả về một số nguyên là giá trị \(q + r\), với \(q,r\) trong biểu thức \(N = q \times K + r\).
  • Hàm này được gọi đúng một lần.

Constraint

  • \(1 \le N,K \le 10^{18}\)

Ví dụ

Xét lời gọi hàm sau:

C++
solve(5,3)

Trong ví dụ này, \(N = 5, K = 3\).

Xét biểu thức \(N = q \times K + r\), ta có \(5 = 0 \times 3 + 5 = 1 \times 3 + 2\).

Do xét \(q\) lớn nhất có thể nên ta lấy \(q = 1, r = 2\). Ta có giá trị \(q + r = 1 + 2 = 3\).

Vậy hàm cần trả về một số nguyên có giá trị bằng \(3\).

4. Nhỏ nhất

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

Cho một dãy gồm \(n\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{n}\) và số nguyên dương \(k\).

Hãy in số nhỏ nhất lớn hơn \(k\) cùng chỉ số của nó, nếu có nhiều số nhỏ nhất lớn hơn \(k\) thì in ra các chỉ số của nó.

Input

  • Dòng đầu chứa số \(n\)\(k\) \((1 \leq n \leq 10^{5}, 1 \leq k \leq 10^{9})\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{n}\) \((1 \leq_{i} \leq 10^{9})\).

Output

  • Dòng đầu chứa số có giá trị nhỏ nhất lớn hơn \(k\), dòng thứ hai chứa các chỉ số của nó.

Example

Test 1

Input
6 35
91 32 43 43 451 54
Output
43
3 4

5. Ước số của n

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

Viết chương trình nhập vào số nguyên \(n\). In ra tất cả các ước số của \(n\). (Ước số của \(n\) là các số nguyên mà \(n\) chia hết)

Ví dụ: \(n = 10\) thì in ra các số: \(1\) \(2\) \(5\) \(10\)

Input

  • Một số nguyên dương \(n\) \((n \leq 10^{7})\).

Output

  • In ra các ước số của \(n\).

Example

Test 1

Input
10
Output
1 2 5 10

Test 2

Input
36
Output
1 2 3 4 6 9 12 18 36

6. Số hoàn hảo

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

Số hoàn hảo là số mà tổng các ước của nó bằng \(2\) lần chính nó.

Ví dụ: \(6\) là số hoàn hảo vì \(6\) có tổng ước là \(1+2+3+6=12 = 2\) lần số \(6\).

Yêu cầu: Viết chương trình nhập vào số nguyên \(n\). In ra chữ YES nếu \(n\) là số hoàn hảo, ngược lại ghi chữ NO

Input

  • Một số nguyên dương \(n\)(\(n\leq 10^{12}\)).

Output

  • In ra chữ YES nếu \(n\) là s ố hoàn hảo, ngược lại ghi chữ NO.

Example

Test 1

Input
6
Output
YES

Test 2

Input
36
Output
NO

7. [Hàm] - Nói lắp

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

Nortrom là một robot mới nhưng do trục trặc âm thanh nên bị nói lắp. Mỗi lần khi cố nói ra một xâu \(s\), Nortrom nói ra \(n\) lần xâu đó. Hãy in ra những lời nói của Nortrom.

Chi tiết cài đặt

Bạn cần cài đặt hàm sau:

C++
void solve(int N, string S)
  • \(N\): số nguyên dương \(n\), số lần mà Nortrom nói lắp.
  • \(S\): xâu lời nói của robot Nortrom.
  • Hàm này không trả về giá trị.
  • Hàm này xuất ra màn hình \(N\) xâu \(S\) trên \(N\) dòng.
  • Hàm này được gọi đúng một lần.

Constraint

  • \(1 \leq N \leq 10^3\).
  • \(1 \leq |S| \leq 10^3\).

Ví dụ

Xét lời gọi hàm sau:

C++
solve(3,"silence")

Trong ví dụ này, \(N = 3\), \(S =\) silence.

Bạn cần xuất ra màn hình \(3\) xâu silence trên \(3\) dòng.

Vậy ta cần in kết quả ra màn hình như sau:

Output
silence
silence
silence

8. Giá trị trung bình

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

Bạn được một mảng \(A\) gồm \(N\) số nguyên dương.

Bạn sẽ chọn một số phần tử từ mảng \(A\) sao cho giá trị trung bình của các phần tử đã chọn nhỏ hơn \(K\).

Nhiệm vụ của bạn là xác định xem có thể chọn nhiều nhất bao nhiêu phần tử với \(K\) cho trước.

Input

  • Dòng đâu tiên chứa số nguyên dương \(N\) \((N \leq 5*10^5)\).
  • Dòng 2 chứa \(N\) số nguyên dương \(A_i\) \((A_i \leq 10^9)\).
  • Dòng thứ 3 chứa số nguyên \(Q\) \((Q \leq 5\times 10^5)\) - là số câu hỏi.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa \(1\) giá tri \(K\) \((K \leq 10^9)\).

Output

  • Gồm \(Q\) dòng, mỗi dòng chứa câu trả lời cho mỗi câu hỏi.

Example

Test 1

Input
5
1 2 3 4 5
5
1
2
3
4
5
Output
0
2
4
5
5

9. Sort Abs

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

Cho n số nguyên a[1], a[2], … , a[n]. Sắp xếp lại mảng a theo cách:

  • Số nào có giá trị tuyệt đối nhỏ hơn xếp trước

  • Hai số có giá trị tuyệt đối bằng nhau, số nào nhỏ hơn xếp trước

Sample Input

3
-2 1 -1

Sample Output


-1 1 -2

10. Leo Thang

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

Ngọc Anh vừa tốt nghiệp một khóa học kiến trúc và ngay lập tức, cô ấy được giao một công việc thiết kế một ngôi nhà. Ngôi nhà đã hoàn thiện, nhưng vốn là một người yêu Toán học nên Ngọc Anh đã cố tình thiết kế cầu thang với các bậc thang có chênh lệch độ cao giữa hai bậc thang khác nhau.

Biết cầu thang có tổng cộng \(n\) bậc thang, bậc thang thứ \(i\) có cao hơn bậc thang thứ \(i-1\) một khoảng \(a_{i}\) đơn vị độ dài. Ngọc Anh đặt ra một câu hỏi: Giả sử bước chân của một người chỉ có thể leo lên bậc thang kế tiếp nếu chênh lệch giữa bậc thang kế tiếp và bậc thang hiện tại không quá \(t\), hỏi người đó có thể leo được tối đa bao nhiêu bậc thang?

Để tính cho cả nhà gia chủ, Ngọc Anh sẽ cần tính bậc thang tối đa có thể leo cho từng người một. Việc này khá tốn thời gian, nên Ngọc Anh đã nhờ Hải "dớ" xử lí hộ Ngọc Anh vấn đề này để Ngọc Anh có thể đi thiết kế những ngôi nhà khác.

Yêu cầu: Với mỗi người, xác định số bậc thang tối đa họ có thể leo?

Input

  • Dòng thứ nhất chứa hai số nguyên dương \(n,m\) (\(n,m \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_{1}, a_{2},..., a_{n}\) (\(a_{i} \le 10^9\)).
  • Dòng thứ ba chứa \(m\) số nguyên \(t\) (\(t \le 10^9\)).

Output

  • Với mỗi người, in ra trên một dòng là số bậc thang tối đa họ có thể leo.

Scoring

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

Example

Test 1

Input
5 2
1 2 2 4 5
2 4
Output
3
4