Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Phần tử thiếu

100 điểm

Alice sưu tầm và lưu lại một danh sách các số nguyên dương mà mình yêu thích, gọi là các số nguyên dương đẹp.

Hiện tại, Alice đang có một danh sách \(A\) gồm \(N\) số nguyên dương đẹp
\(A_1, A_2, \dots, A_N\),
trong đó các phần tử đôi một khác nhau và được sắp xếp theo thứ tự tăng dần
\(A_1 < A_2 < \dots < A_N\).

Các số nguyên dương không xuất hiện trong danh sách \(A\) được gọi là các phần tử thiếu.

Alice cần trả lời \(Q\) truy vấn độc lập.
Mỗi truy vấn cho một số nguyên dương \(k\), yêu cầu xác định phần tử thiếu thứ \(k\) khi liệt kê các phần tử thiếu theo thứ tự tăng dần.

\InputFile

  • Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\)
    \((1 \le N, Q \le 10^5)\).
  • Dòng thứ hai chứa \(N\) số nguyên dương
    \(A_1, A_2, \dots, A_N\)
    \((1 \le A_i \le 10^{18})\), dữ liệu đảm bảo dãy được sắp xếp tăng nghiêm ngặt.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa một số nguyên dương \(k_i\)
    \((1 \le k_i \le 10^{18})\).

\OutputFile

Gồm \(Q\) dòng, dòng thứ \(i\) in ra một số nguyên --- giá trị của phần tử thiếu thứ \(k_i\).

\Scoring

  • \(40\%\) số test: \(N, Q \le 2 \cdot 10^3\).
  • \(30\%\) số test: \(A_i \le 10^6\).
  • \(30\%\) số test còn lại: không có ràng buộc gì thêm.

Example

Test 1

Input
5 3
1 3 9 12 17
2
9
19
Output
4
13
24

root

Kiểm tra số nguyên tố

100 điểm

Số nguyên tố là số nguyên dương có đúng \(2\) ước, là \(1\) và chính nó.

Ví dụ, \(7\) là số nguyên tố vì \(7\) có đúng \(2\) ước là \(1\) và \(7\). \(6\) không phải số nguyên tố vì \(6\) có các ước là \(1\), \(2\), \(3\) và \(6\).

Viết chương trình nhập vào bàn phím số nguyên dương \(n\) \((1 \leq n \leq 10^7)\). Nếu \(n\) là số nguyên tố, in ra "YES", ngược lại in ra "NO".

Input

Số nguyên dương \(n\). \((1 \leq n \leq 10^7)\)

Output

Yêu cầu bài toán.

Example

Test 1

Input
2
Output
YES

Test 2

Input
3
Output
YES

Test 3

Input
6
Output
NO

Test 4

Input
7
Output
YES

root

Đảo kho báu

100 điểm

Trên hòn đảo hình vòng tròn, có \(n\) chiếc rương báu vật xếp thành một vòng. Mỗi chiếc rương được đánh số từ \(0\) đến \(n - 1\) và chứa một số lượng vàng ban đầu là \(a_0, a_1, \ldots, a_{n-1}\).

Cướp biển Lập trình viên rất quan tâm đến giá trị của kho báu và thường xuyên thực hiện các hành động sau:

  • inc(lf, rg, v) --- Thêm \(v\) thỏi vàng vào mỗi chiếc rương từ vị trí \(lf\) đến \(rg\) (tính cả hai đầu).
  • rmq(lf, rg) --- Truy xuất thông tin: rương nào có ít vàng nhất trong đoạn từ \(lf\) đến \(rg\)?

Vì các rương được xếp thành vòng tròn, nên đoạn từ \(lf\) đến \(rg\) có thể được hiểu như sau:

  • Nếu \(lf \le rg\): đoạn gồm các chỉ số từ \(lf\) đến \(rg\).
  • Nếu \(lf > rg\): đoạn gồm các chỉ số từ \(lf\) đến \(n - 1\), rồi tiếp tục từ \(0\) đến \(rg\).

Hãy giúp Lập trình viên thực hiện tuần tự các thao tác, và ghi lại kết quả mỗi lần anh ta truy vấn rmq!

Input

  • Dòng đầu chứa số nguyên \(n\) \((1 \leq n \leq 2 \cdot 10^5)\) --- số lượng rương.
  • Dòng thứ hai chứa \(n\) số nguyên \(a_0, a_1, \ldots, a_{n-1}\) \((-10^6 \le a_i \le 10^6)\) --- số lượng vàng ban đầu ở mỗi rương.
  • Dòng thứ ba chứa số nguyên \(m\) \((0 \le m \le 2 \cdot 10^5)\) --- số truy vấn.
  • \(m\) dòng tiếp theo, mỗi dòng chứa một truy vấn, có thể ở một trong hai dạng:

  • lf rg --- Truy vấn loại rmq.

  • lf rg v --- Truy vấn loại inc.

Output

Với mỗi truy vấn loại rmq, in ra một dòng chứa số lượng vàng ít nhất trong đoạn được hỏi.

Example

Test 1

Input
4
1 2 3 4
4
3 0
3 0 -1
0 1
2 1
Output
1
0
0

root

Phát quà

100 điểm

Trong tiết sinh hoạt lớp, giáo viên chủ nhiệm tổ chức hoạt động phát quà cho các bạn học sinh trong lớp chuyên. Giáo viên phát quà cho học sinh theo quy tắc sau:

  • Mỗi học sinh sẽ đem theo một số lượng viên kẹo tùy ý.
  • Học sinh xếp thành hàng ngang theo chiều tăng dần (từ trái qua phải) của số kẹo mà mình có.
  • Học sinh nào đứng ở vị trí có số thứ tự trùng với số viên kẹo mình đem theo thì sẽ được ưu tiên phát quà trước, tiếp theo giáo viên sẽ phát quà cho các bạn còn lại.

Biết rằng có \(N\) học sinh, học sinh thứ \(i\) đem theo \(a_i\) viên kẹo.

Yêu cầu. Hãy đếm xem có bao nhiêu học sinh được ưu tiên phát quà trước.

\InputFile

  • Dòng đầu tiên chứa số nguyên dương \(N\) \((1 \le N \le 10^6)\).
  • Dòng thứ hai chứa \(N\) số nguyên dương \(a_1, a_2, \dots, a_N\) \((1 \le a_i \le 10^9)\).

\OutputFile

  • In ra một số nguyên là số lượng học sinh được ưu tiên phát quà trước.

\Examples
\beginexample
\exmp
5
3 3 4 3 6

2

\exmp
5
5 3 4 7 6

0

\endexample

\Note
Ở ví dụ thứ nhất, sau khi sắp xếp dãy tăng dần ta được \(3, 3, 3, 4, 6\). Hai học sinh ở vị trí \(3\) (có \(3\) kẹo) và vị trí \(4\) (có \(4\) kẹo) được ưu tiên phát quà.

\Scoring

  • (50%) \(N \le 10^3\);
  • (50%) Không có ràng buộc thêm.

\endproblem

Xem thêm