Pre TS10 2024 - TLEOI 2.0 - Ngày thi thứ nhất

Sunlight

Thời gian làm bài: 120 phút, 20 giờ 00 đến 22 giờ 00 ngày 23 tháng 12 năm 2023.

Nộp bài từ 21 giờ 55 đến 22 giờ 05 tại đây.

Tổng quan đề thi

STT Tên bài Mã bài Thời gian Bộ nhớ Điểm
1 Ghép xâu MAKESTR 1 giây 256 MB 5
2 Tổng tích SUMMUL 1 giây 256 MB 5
3 Tổng các số lớn nhất SUMMAX 1 giây 256 MB 5
4 Tích chính phương SQRPRO 1 giây 256 MB 5

Lưu ý:

  • Các đội nộp bài trên hệ thống TLEOJ. Contest sẽ được mở lúc 22 giờ 00 của ngày thi và sẽ kết thúc vào lúc 22 giờ 05 cùng ngày.
  • Với mỗi bài tập, các bạn được nộp tối đa một lần.
  • Tất cả các bài đều nhập xuất qua file. File dữ liệu đầu vào có tên là <mã bài>.inp và file dữ liệu đầu ra có tên là <mã bài>.out, ví dụ như bài có mã là EQSTR thì sẽ có các file là EQSTR.inp và EQSTR.out.
  • Bài thi chỉ được chấm bởi một trong ba ngôn ngữ: C++ (C++11), Pascal và Python (Python 3).
  • Tất cả các bài nộp đều không được phép dùng các từ khóa như #pragma, optimize.

--- Happy coding ---


Ghép xâu (MAKESTR)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes MAKESTR.inp MAKESTR.out

Quang có hai xâu s và t. Quang muốn chọn một bộ số (a_1, a_2, ..., a_k), các số trong bộ đôi một khác nhau sao cho khi ghép lần lượt các ký tự a_1,a_2,…,a_k của xâu s ta được xâu t. Ví dụ, với xâu s="danghuyhau" và t="huh" thì một bộ hợp lệ là (8,10,5) vì các ký tự thứ 8, 10, 5 trong xâu s lần lượt là h, u, h.

Input, Output và Subtask

Input: Nhập từ file MAKESTR.inp

  • Dòng đầu tiên gồm một xâu s gồm các ký tự Latin tiếng Anh in thường.
  • Dòng đầu tiên gồm một xâu t gồm các ký tự Latin tiếng Anh in thường.
  • Độ dài hai xâu không vượt quá 10^5.

Output: Xuất ra file MAKESTR.out

  • Một dòng duy nhất gồm số cách Quang có thể thực hiện. Vì kết quả có thể rất lớn nên chỉ cần in ra phần dư của kết quả khi chia cho 10^9+7.

Subtask

  • Subtask 1 (20\%): Độ dài xâu t là 1.
  • Subtask 2 (20\%): Độ dài xâu t là 2 và độ dài xâu s không vượt quá 5000.
  • Subtask 3 (20\%): Xâu t chỉ gồm các ký tự khác nhau.
  • Subtask 4 (20\%): Xâu t chỉ gồm một loại ký tự.
  • Subtask 5 (20\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (MAKESTR.inp)
tleonlinejudge
e
Output (MAKESTR.out)
3
Notes

Các bộ số thỏa mãn là (3),(9) và (14).

Sample 2
Input (MAKESTR.inp)
tleonlinejudge
le
Output (MAKESTR.out)
6
Notes

Các bộ số thỏa mãn là (2,3),(2,9),(2,14),(3,3),(3,9),(3,14).

Sample 3
Input (MAKESTR.inp)
tleonlinejudge
eee
Output (MAKESTR.out)
6
Notes

Các bộ số thỏa mãn là (3,9,14),(3,14,9),(9,3,14),(9,14,3),(14,3,9) và (14,9,3).


Tổng tích (SUMMUL)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes SUMMUL.inp SUMMUL.out

Cho một dãy a_1,a_2,…,a_n. Bạn cần tính tổng tất cả các giá trị a_i×a_j với mọi 1≤i<j≤n.

Nhận thấy bài toán này quá dễ đối với các bạn học sinh chuyên Tin, Quang quyết định tăng độ khó cho nó bằng cách áp dụng các truy vấn, mỗi truy vấn gồm hai số u,v, yêu cầu bạn thay đổi giá trị a_u=v, sau đó tính lại tổng các giá trị như trên.

Input, Output và Subtask

Input: Nhập từ file SUMMUL.inp

  • Dòng đầu tiên gồm hai số nguyên duơng n,q – lần lượt là số lượng số trong dãy a và số lượng truy vấn (1≤n,q≤3×10^5 ).
  • Dòng tiếp theo gồm n số nguyên mô tả dãy a ban đầu (0≤a_i≤10^9 ).
  • q dòng tiếp theo mỗi dòng gồm hai số nguyên dương u,v mô tả một truy vấn yêu cầu gán lại a_u=v (1≤u≤n,0≤v≤10^9 ).

Output: Xuất ra file SUMMUL.out

  • Dòng đầu tiên gồm một số là tổng các tích hai số với dãy ban đầu.
  • q dòng tiếp theo, dòng thứ i trong số q dòng này gồm một số là tổng các tích hai số với dãy sau khi thực hiện truy vấn thứ i.
  • Vì các kết quả có thể rất lớn, bạn chỉ cần in ra 9 chữ số cuối của nó.

Subtask

  • Subtask 1 (25\%): n, q \le 500.
  • Subtask 2 (25\%): n, q \le 5000.
  • Subtask 3 (25\%): a_i \le 1 và v \le 1 ở mọi truy vấn.
  • Subtask 4 (25\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (SUMMUL.inp)
3 3
1 2 3
1 2
2 3
3 4
Output (SUMMUL.out)
11
16
21
26
Notes
  • Ban đầu tổng các tích là 1×2+2×3+1×3=11.
  • Sau truy vấn 1, tổng các tích là 2×2+2×3+2×3=16.
  • Sau truy vấn 2, tổng các tích là 3×2+2×3+3×3=21.
  • Sau truy vấn 3, tổng các tích là 3×2+2×4+3×4=26.
Sample 2
Input (SUMMUL.inp)
5 3
0 0 0 1 1
1 1
2 1
4 0
Output (SUMMUL.out)
1
3
6
3

Tổng các số lớn nhất (SUMMAX)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes SUMMAX.inp SUMMAX.out

Bạn được cho một dãy số a_1,a_2,…,a_n. Bạn hãy tính tổng các giá trị max⁡(a_l,a_{l+1},…,a_r ) với mọi cặp (l,r) mà 1≤l≤r≤n.
max⁡(a_l,a_{l+1},…,a_r ) là số lớn nhất trong đoạn từ a_l đến a_r.

Input, Output và Subtask

Input: Nhập từ file SUMMAX.inp

  • Dòng đầu tiên gồm một số nguyên dương n – số phần tử của dãy a (1≤n≤10^6 ).
  • Dòng tiếp theo gồm n số nguyên dương a_1, a_2, ..., a_n (0≤a_i≤10^9 ).

Output: Xuất ra file SUMMAX.out

  • Một dòng duy nhất gồm kết quả bài toán. Vì kết quả có thể rất lớn nên chỉ cần in ra 9 chữ số cuối của kết quả.

Subtask

  • Subtask 1 (25\%): n \le 500.
  • Subtask 2 (25\%): n \le 5000.
  • Subtask 3 (25\%): Dãy a được sắp xếp không giảm.
  • Subtask 4 (25\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (SUMMAX.inp)
3
1 2 3
Output (SUMMAX.out)
14
Notes
  • Cặp (1,1) có số lớn nhất là 1.
  • Các cặp (1,2),(2,2) có số lớn nhất là 2.
  • Các cặp (1,3),(2,3),(3,3) có số lớn nhất là 3.
Sample 2
Input (SUMMAX.inp)
3
2 3 1
Output (SUMMAX.out)
15
Notes
  • Cặp (3, 3) có số lớn nhất là 1.
  • Cặp (1, 1) có số lớn nhất là 2.
  • Các cặp còn lại có số lớn nhất là 3.

Tích chính phương (SQRPRO)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes SQRPRO.inp SQRPRO.out

Bạn được cho một dãy a_1,a_2,…,a_n. Bạn cần đếm xem có bao nhiêu cặp (i,j) mà 1≤i<j≤n và a_i×a_j là số chính phương.

Input, Output và Subtask

Input: Nhập từ file SQRPRO.inp

  • Dòng đầu tiên gồm một số nguyên dương n – số phần tử của dãy a (1≤n≤10^5 ).
  • Dòng tiếp theo gồm n số nguyên dương a_1, a_2, ..., a_n (1≤a_i≤10^9 ).

Output: Xuất ra file SQRPRO.out

  • Một dòng duy nhất gồm số cặp thỏa mãn.

Subtask

  • Subtask 1 (20\%): n \le 1000.
  • Subtask 2 (20\%): a_1 = a_2 = ... = a_n.
  • Subtask 3 (20\%): a_i \le 10^6.
  • Subtask 4 (20\%): a_i \le 2\times 10^7.
  • Subtask 5 (20\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (SQRPRO.inp)
5
2 4 8 16 32
Output (SQRPRO.out)
4
Notes

Các cặp số thỏa mãn là: 2×8=16,2×32=64,8×32=256,4×16=64.

Sample 2
Input (SQRPRO.inp)
9
1 2 3 4 5 6 7 8 9
Output (SQRPRO.out)
4
Notes

Các cặp số thỏa mãn là: 1×4=4,1×9=9,4×9=36,2×8=16.

Sample 3
Input (SQRPRO.inp)
5
5 10 15 20 25
Output (SQRPRO.out)
1
Notes

Cặp số duy nhất thỏa mãn là 5×20=100.

Pre TS10 2024 - TLEOI 2.0 - Ngày thi thứ hai

Sunlight

Thời gian làm bài: 120 phút, 20 giờ 00 đến 22 giờ 00 ngày 25 tháng 12 năm 2023.

Tổng quan đề thi

STT Tên bài Mã bài Thời gian Bộ nhớ Điểm
1 Cặp số nguyên tố tương đồng CSNTTD 1 giây 256 MB 5
2 Dãy số DAYSO 1 giây 256 MB 5
3 Ăn trưa ANTRUA 1 giây 256 MB 5
4 Số bộ K SOBOK 1 giây 256 MB 5

Lưu ý:

  • Các đội nộp bài trên hệ thống TLEOJ. Contest sẽ được mở lúc 22 giờ 00 của ngày thi và sẽ kết thúc vào lúc 22 giờ 05 cùng ngày.
  • Với mỗi bài tập, các bạn được nộp tối đa một lần.
  • Tất cả các bài đều nhập xuất qua file. File dữ liệu đầu vào có tên là <mã bài>.inp và file dữ liệu đầu ra có tên là <mã bài>.out, ví dụ như bài có mã là EQSTR thì sẽ có các file là EQSTR.inp và EQSTR.out.
  • Bài thi chỉ được chấm bởi một trong ba ngôn ngữ: C++ (C++11), Pascal và Python (Python 3).
  • Tất cả các bài nộp đều không được phép dùng các từ khóa như #pragma, optimize.

--- Happy coding ---


Cặp số nguyên tố tương đồng (CSNNTD)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes CSNTTD.inp CSNTTD.out

Bạn An rất yêu thích toán học, đặc biệt là số nguyên tố. Một ngày nọ, trong lúc giải một bài toán về số nguyên tố, An nhận ra có nhiều cặp số nguyên tố có tổng các chữ số của chúng bằng nhau và An gọi những cặp số như thế là cặp số nguyên tố tương đồng. Ví dụ, cặp số 151 và 601 là cặp số tương đồng vì cả hai đều có tổng các chữ số là 1+5+1=6+0+1=7.
Yêu cầu: Cho hai số nguyên dương L,R. Hãy giúp An tìm xem cặp số nguyên tố tương đồng có giá trị trong đoạn từ L tới R và hiệu hai số là lớn nhất.

Input, Output và Subtask

Input: Nhập từ file CSNTTD.inp

  • Một dòng duy nhất gồm hai số nguyên dương L, R (1 \le L \le R \le 10^7).

Output: Xuất ra file CSNTTD.out

  • Một số nguyên gồm hiệu lớn nhất tìm được. Nếu không tồn tại cặp số in ra 0.

Subtask

  • Subtask 1 (50\%): 1 \le L \le R \le 1000.
  • Subtask 2 (50\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (CSNTTD.inp)
30 100
Output (CSNTTD.out)
36
Notes

Cặp số cần tìm là 37 và 73.


Dãy số (DAYSO)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes DAYSO.inp DAYSO.out

Cho dãy số gồm N số nguyên a_1,a_2,…,a_N và hai số nguyên không âm L,R (L≤R). Đếm số cặp (i,j) thỏa mãn 1≤i≤j≤N và L≤|a_i+a_{i+1}+⋯+a_j |≤R.

Input, Output và Subtask

Input: Nhập từ file DAYSO.inp

  • Dòng đầu tiên chứa 3 số nguyên N,L,R (1 ≤N≤10^5,0≤L≤R≤10^9 ).
  • Dòng thứ hai ghi N số nguyên a_1,a_2,…,a_N (|a_i |≤10^9 ).

Output: Xuất ra file DAYSO.out

  • Một dòng duy nhất chứa số cặp chỉ số (i,j) tìm được.

Subtask

  • Subtask 1 (25\%): 1 \le N \le 100.
  • Subtask 2 (25\%): 1 \le N \le 1000.
  • Subtask 3 (50\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (DAYSO.inp)
3 0 1
1 -1 2
Output (DAYSO.out)
4
Notes

Các cặp thỏa mãn là (1,1),(1,2),(2,2),(2,3).


Ăn trưa (ANTRUA)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes ANTRUA.inp ANTRUA.out

Trường mầm non Super Kid có nhiều bé code rất nhanh nhưng ăn rất chậm. Trong giờ ăn trưa, có N bé ngồi quanh một bàn tròn, các bé được đánh số từ 1 tới N theo chiều kim đồng hồ. Xuất phát từ một vị trí của 1 bé, cô giáo phải đi một vòng quanh bàn theo chiều kim đồng hồ để múc đồ ăn cho từng bé. Khi đến vị trí 1 bé, cô chuẩn bị đồ ăn hết X (giây), và bé đó bắt đầu ăn ngay trong khi cô chuyển sang chuẩn bị đồ ăn cho bé kế tiếp theo chiều kim dồng hồ…, thời gian di chuyển của cô coi như không đáng kể.

Do biết rõ tốc độ ăn của từng bé, cô có thể uớc luợng chính xác rằng bé thứ i sau khi được cô chuẩn bị đồ ăn sẽ cần dúng a_i giây để ăn xong phần ăn của mình (∀i = 1,2,… ,n). Vấn đề là cô muốn kết thúc bữa ăn trưa càng sớm càng tốt, muốn vậy, việc chọn bé nào để chuẩn bị đồ ăn đầu tiên phải đuợc tính toán kỹ luỡng.

Yêu cầu: Bạn duợc cho biết số N, giá trị X, dãy A = (a_1,a_2,…,a_n). Hãy giúp cô giáo chọn vị trí xuất phát sao cho thời gian từ lúc bắt đầu buổi ăn trưa tới khi tất cả các học sinh ăn xong là nhỏ nhất.
Ðể tránh việc phải đọc một luợng dữ liệu quá lớn, dãy A sẽ duợc cho bởi ba số nguyên duong P,Q,M trong dó mỗi phần tử a_i được xác dịnh theo công thức:

a_i=(P×i) \mod M+Q

Input, Output và Subtask

Input: Nhập từ file ANTRUA.inp

  • Dòng đầu tiên gồm hai số nguyên dương N,X (1 \le N≤5×10^6,1\le X≤10^9 ).
  • Dòng tiếp theo gồm ba số nguyên dương P,Q,M (P,Q,M≤10^9 ).

Output: Xuất ra file ANTRUA.out

  • Ghi một số nguyên duy nhất là thời gian tính bằng giây từ lúc bắt đầu buổi ăn trưa đén lúc tất cả các bé ăn xong.

Subtask

  • Subtask 1 (40\%): 1 \le N \le 1000.
  • Subtask 2 (30\%): 1 \le N \le 10^5.
  • Subtask 3 (30\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (ANTRUA.inp)
5 3
2 1 9
Output (ANTRUA.out)
18
Notes

Giải thích: X=3; Dãy A=(3,5,7,9,2).

Phương án tối ưu: cô bắt dầu với bé thứ 2, thời điểm ăn xong của từng bé như sau:

  • Bé thứ 2: 3 + 5 = 8
  • Bé thứ 3: 6 + 7 = 13
  • Bé thứ 4: 9 + 9 = 18
  • Bé thứ 5: 12 + 2 = 14
  • Bé thứ 1: 15 + 3 = 18

Số bộ K (SOBOK)

Thời gian Bộ nhớ Input Output
1 giây 256 megabytes SOBOK.inp SOBOK.out

Ưóc số và bội số là một trong những khái niệm quen thuộc trong Số học. Với hai số nguyên A,B bất kỳ nếu A chia hết cho B ta gọi B là ước số của A và A là bội số của B. Với một bộ k số nguyên dương a_1,a_2,…,a_k bất kỳ, ước số chung lớn nhất của chúng là số nguyên dương X lớn nhất thòa mãn mọi a_i là bội của X. Tương tự, bội số chung nhỏ nhất của chúng là số nguyên dương nhỏ nhất Y sao cho Y chia hết cho mọi số a_i.

Cho hai số nguyên P và Q được viết dưới dạng tích các số nguyên dương (P=p_1×p_2×…×p_N,Q=q_1×q_2,…,q_M ). Đếm số bộ K số nguyên dương có ước chung lớn nhất là P và bội chung nhỏ nhất là Q.

Input, Output và Subtask

Input: Nhập từ file SOBOK.inp

  • Dòng đầu tiên gồm ba số nguyên dương N,M,K (1≤N,M≤10^6,K≤10^9 ).
  • Dòng thứ hai gồm N số nguyên dương p_1,p_2,…,p_N (1≤p_i≤10^6 ).
  • Dòng thứ ba gồm M số nguyên dương q_1,q_2,…,q_M (1≤q_i≤10^6 ).

Output: Xuất ra file SOBOK.out

  • Một dòng duy nhất gồm số bộ thỏa mãn. Do kết quả có thể rất lớn nên chỉ cần in ra phần dư của kết quả khi chia cho 10^9+9.

Subtask

  • Subtask 1 (10\%): N = M = K = 1.
  • Subtask 2 (25\%): P, Q \le 10^6, K = 2.
  • Subtask 3 (25\%): N, M \le 5000, K = 2.
  • Subtask 4 (25\%): K = 2.
  • Subtask 5 (15\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (SOBOK.inp)
1 2 2
1
2 3
Output (SOBOK.out)
4
Notes

P=1,Q=6, 4 bộ 2 số thỏa điều kiện là (1,6),(2,3),(3,2),(6,1).

Sample 2
Input (SOBOK.inp)
1 2 10
2
2 3
Output (SOBOK.out)
1022
Sample 3
Input (SOBOK.inp)
2 1 5060162
22 7
1997
Output (SOBOK.out)
0
Notes

P=154,Q=1997. Do Q không chia hết cho P nên dễ thấy không tồn tại bộ số nào thỏa mãn.

TLEoj Contest #11 - Người hướng nội và cuộc đi dạo vui vẻ

_nhphuc

Bocchi là một cô gái hướng nội, mẹ của cô bé – cô Michiyo Gotoh không thích điều này. Vì vậy, mỗi ngày mẹ của cô bé đều bắt cô bé chạy quanh khu phố qua ít nhất k con đường trong khu phố sau đó trở về điểm bắt đầu (lưu ý là trên đường đi và về chỉ cần có ít nhất k con đường, hay nói cách khác cô có thể đi lại trên một con đường nhiều lần), khu phố của Bocchi có dạng một lưới các nhà dân có kích thước n x m, với một khu nhà (i_1, j_1) sẽ có đường nối tới khu nhà (i_2, j_2) nếu |i_1 – i_2| + |j_1 – j_2| = 1. Dù các con đường có chiều dài bằng nhau nhưng để đi hết mỗi con đường sẽ tiêu tốn một khoảng thời gian có thể khác nhau vì có thể các con đường trên có chó dữ, đông người hay Oppenheimer đang thử bom nguyên tử,…
Tuy nhiên, Bocchi được quyền chọn một điểm bắt đầu cho chặng đường của cô, và cô muốn tối thiểu thời gian chạy nhất có thể, Bocchi sẽ hỏi bạn q lần dạng câu hỏi nếu bắt đầu chạy từ khu nhà (i, j) thì cần tối thiểu bao nhiêu thời gian, nhiệm vụ của bạn là trả lời cho Bocchi để giúp tay rock của chúng ta có thời gian chạy ít nhất có thể.

Input, Output and Scoring

Input

  • Dòng đầu tiên gồm ba số n, m, k - số dòng, số cột của khu phố và số con đường mà Bocchi phải đi qua. (n, m, k\leq 200)

  • n dòng tiếp theo mỗi dòng chứa m – 1 số, với số thứ j trong dòng i là thời gian đi con đường từ (i, j) tới (i, j + 1) đảm bảo thời gian đi trên một con đường không vượt quá 10^6

  • n – 1 dòng tiếp theo mỗi dòng chứa m số, với số thứ j trong dòng i là thời gian đi con đường từ (i, j) tới (i + 1, j) đảm bảo thời gian đi trên một con đường không vượt quá 10^6

  • Dòng tiếp theo chứa một số nguyên q – số lượng truy vấn (q\leq 10^6)

  • q dòng tiếp theo mỗi dòng chứa một cặp số nguyên (i, j) – nếu Bocchi xuất phát từ (i, j) thì thời gian ngắn nhất là bao nhiêu ?

Output

  • Gồm q dòng mỗi dòng chứa kết quả của mỗi truy vấn.

Scoring

  • Subtask 1 (30\%): n, m, k, q\leq 10
  • Subtask 2 (70\%): Không có ràng buộc gì thêm.

Test 1

Input

3 3 10
1 1 
1 1
1 1
1 1 1
1 1 1
1
1 1

Output

10
Note
  • Dù đi theo phương án nào thì Bocchi cũng tốn 10 đơn vị thời gian.

Test 2

Input

2 2 4
1
3
3 2
1
1 2

Output

4
Note
  • Bocchi chỉ cần đi qua lại hai khu nhà (1, 1) và (1, 2) trong 4 lần với 4 đơn vị thời gian.

TLEoj Contest #11 - Cờ vua

flo

Lại là 1 bài toán khác về cờ vua.

Hôm nay là một ngày đẹp trời, flo, Noobcoder và mondellbit009 quyết định đến nhà của flo để chơi cờ vua 4 người bởi cả 3 rất thích chơi cờ vua.

Sau khi chơi 69420 ván cờ vua, cả 3 đã bắt đầu thấy chán chơi cờ vua thông thường. Thế là flo quyết định lấy bàn cờ vua với kích thước n \times m mà mondellbit009 tặng cậu vào sinh nhật cùng với những con mã của Noobcoder. Trong lúc suy nghĩ nên chơi gì với những món này thì bỗng một bài toán khá thú vị xuất hiện trong đầu của flo.

Nội dung bài toán

Cho một bàn cờ gồm n hàng, m cột và một quân mã nằm ở ô (1, 1). Tại mỗi bước, quân mã chỉ có thể di chuyển từ ô (i, j) sang ô (i+1, j+2) hoặc (i+2, j+1) và không được rời khỏi bàn cờ. Nhiệm vụ của bạn là đếm số lượng cách đi từ ô (1, 1) đến ô (n, m).

Bài toán trên quá dễ nên flo, Noobcoder và mondellbit009 đã giải nó chỉ trong 69420ms. Vậy nên bạn hãy thử sức với bài toán trên nhé.

Input, Output and Scoring

Input
  • Số nguyên dương t (1 \le t \le 10^5).
  • t dòng tiếp theo, mỗi dòng gồm 2 số nguyên dương n, m (1 \le n, m \le 10^{18}).
Output
  • Với mỗi dòng, hãy in ra kết quả sau khi chia lấy dư cho 2^{32}-3.
Scoring
  • Subtask 1 (20\%): 1 \le n, m \le 10^3.
  • Subtask 2 (30\%): 1 \le n, m \le 10^6.
  • Subtask 3 (50\%): Không giới hạn gì thêm.

Example

Input
3
1 1
4 2
6 8
Output
1
0
4
Note
  • Không có gì đâu

TLEoj Contest #11 - Tổng xor

xink

Cho 2 số nguyên dương n,k, nhiệm vụ của bạn là tính tổng XOR của tất cả các số nguyên dương có giá trị nhỏ hơn 2^n mà có k bit là 1.

Input, Output và Subtasks

Input:
  • Dòng đầu tiên chứa một số nguyên dương t là số testcase (1\le t\le 10^5).
  • t dòng tiếp theo, mỗi dòng gồm 2 số n,k\ (1\le k\le n\le 10^{18}).
Output:
  • In ra t dòng, mỗi dòng chứa phần dư của đáp án testcase thứ i khi chia cho 119\times 2^{23}+1.
Scoring
  • Subtask 1 (10\%): 1\le n\le 1000.
  • Subtask 2 (40\%): 1\le n\le 10^6.
  • Subtask 3 (50\%): Không giới hạn gì thêm.

Sample

Input
2
2 1
4 2
Output
3
15
Note

Trong testcase thứ nhất, các số thỏa mãn là 1,2 nên kết quả là 1\oplus 2=3.
Trong testcase thứ hai, các số thỏa mãn là 3,5,6,9,10,12 nên kết quả là 3\oplus 5\oplus 6\oplus 9\oplus 10\oplus 12=15.

TLEoj Contest #11 - Tổng các tích

flo

Nội dung bài toán

Cho dãy a gồm n phần tử, nhiệm vụ của bạn là tính tổng các giá trị a_i \times a_j với mọi 1 \le i < j \le n.

À không, bài toán trên quá dễ. Thế nên tôi quyết định đem đến cho 1 bài toán khó hơn với nội dung tương tự như sau.

Nội dung bài toán

Cho dãy a gồm n phần tử, nhiệm vụ của bạn là tính tổng các giá trị a_{i_1} \times a_{i_2} \times ... \times a_{i_k} với mọi 1 \le i_1 < i_2 < ... < i_k \le n.

Chúc bạn may mắn nhé.

Input, Output and Scoring

Input
  • 2 số nguyên dương n, k (1 \le k \le n \le 10^6; 1 \le k \le 10^2).
  • Dãy a gồm n phần tử a_1, a_2, ..., a_n (1 \le a_i \le 10^9).
Output
  • In ra kết quả sau khi chia lấy dư cho 1234567891.
Scoring
  • Subtask 1 (20\%): 1 \le k \le 3.
  • Subtask 2 (30\%): 1 \le k \le n \le 20.
  • Subtask 3 (50\%): Không giới hạn gì thêm.

Test 1

Input
3 2
2 3 1
Output
11

Test 2

Input
4 3
2 3 4 5
Output
154

TLEoj Contest #11 - Xâu đặc biệt

icebearlovecode

chinhhoangmanutd có 1 mảng A gồm các n xâu S có độ dài bất kì và số nguyên không âm k. Với mỗi xâu S ta có thể:

  • Hoán đổi vị trí giữa hai kí tự liền kề nhau.
  • Sau tối đa k thao tác xâu S phải là xâu có thứ tự từ điển lớn nhất.

Sau các thao tác trên hãy in ra xâu có thứ tự từ điển lớn nhất trong mảng A.

Input, Output và Scoring

Input

  • Dòng đầu tiên số nguyên dương n và k (n\le 10^3, 0\le k\le500).
  • n dòng tiếp theo gồm xâu S (|S|\le10^3).

Output

  • In ra xâu thỏa mãn đề bài.
Scoring
  • Subtask 1 (10\%): k\le 1.
  • Subtask 2 (20\%): n,k,|S|\le10.
  • Subtask 3 (70\%): Không có ràng buộc gì thêm

Example

Test 1

Input
5 4
hoang
haudz
bngoc
cuong
dviet
Output
zhaud

TLEoj Contest #11 - Căn bậc hai về 0

icebearlovecode

Bạn được cho 1 số nguyên dương n và tại mỗi thao tác, bạn có thể trừ n cho \left \lfloor \sqrt n \right \rfloor. Nhiệm vụ của bạn là xác định số lượng thao tác cần thực hiện để n = 0.

Ta có \left \lfloor n \right \rfloor là phép làm tròn xuống. Ví dụ như \left \lfloor 6.9 \right \rfloor=6,\left \lfloor 4.20 \right \rfloor=4.

Input, Output và Subtasks

Input
  • Dòng đầu chứa số nguyên dương t là số testcase (1\le t\le 10^5).
  • t dòng tiếp theo, mỗi dòng chứa một số nguyên dương n (1\le n\le 10^{18}).
Output
  • Xuất ra t dòng, mỗi dòng xuất ra kết quả tương ứng trên một dòng.
Scoring
  • Subtask 1 (10\%): n\le 10^6.
  • Subtask 2 (90\%): Không có ràng buộc gì thêm.

Sample

Input
5
6
9
4
2
0
Output
4
5
3
2
0

TLEoj Contest #11 - An interesting problem about digit sums

huyhau6a2

Một bài toán rất thú vị về tổng chữ số

huyhau6a2 rất thích những tính chất thú vị về tổng chữ số nên cậu đã tự đặt bài toán cho mình như sau:

  • Đầu tiên huyhau6a2 sẽ cho bạn 2 số l,r.
  • Ta định nghĩa f(x)=|d(x)-d(x-1)|. Trong đó d(x) là tổng chữ số của x.
  • Nhiệm vụ của bạn là hãy tính \sum_{i=l}^r f(i).

Input, Output và Subtasks

Input
  • Dòng đầu tiên gồm một số nguyên dương t là số testcase (1\le t\le 2\times 10^4).
  • Sau đó là t dòng, mỗi dòng gồm 2 số l,r\ (1\le l\le r\le 10^{18}).
Output
  • Với mỗi testcase, in ra duy nhất 1 giá trị là kết quả của bài toán trên một dòng.
Scoring
  • Subtask 1 (20\%): 1\le l\le r\le 10^7.
  • Subtask 2 (80\%): Không giới hạn gì thêm.

Sample

Input
5
9 9
10 10
13 21
90 100
1 1000000000000000000
Output
1
8
16
34
1799999999999999999
Note
  • Trong testcase thứ nhất, ta có f(9)=|d(9)-d(8)|=|9-8|=1.
  • Trong testcase thứ hai, ta có f(10)=|d(10)-d(9)|=|1-9|=8.
  • Trong testcase thứ tư, ta có:
    • f(90)=|d(90)-d(89)|=|9-17|=8.
    • f(91)=|d(91)-d(90)|=|10-9|=1.
    • f(92)=|d(92)-d(91)|=|11-10|=1.
    • f(93)=|d(93)-d(92)|=|12-11|=1.
    • f(94)=|d(94)-d(93)|=|13-12|=1.
    • f(95)=|d(95)-d(94)|=|14-13|=1.
    • f(96)=|d(96)-d(95)|=|15-14|=1.
    • f(97)=|d(97)-d(96)|=|16-15|=1.
    • f(98)=|d(98)-d(97)|=|17-16|=1.
    • f(99)=|d(99)-d(98)|=|18-17|=1.
    • f(100)=|d(100)-d(99)|=|1-18|=17.
      Tổng là: 8+1+1+1+1+1+1+1+1+1+17=34.

TLEoj Contest #11 - Hàm chẵn lẻ

Sunlight

Một hàm f(x) được gọi là hàm chẵn khi và chi khi f(x) = f(-x) với mọi x, và được gọi là hàm lẻ khi và chỉ khi f(x) = -f(-x) với mọi x.
Viết chương trình kiêm tra một hàm f(x) = a_0 + a_1x + a_2x^2 + ... + a_nx^n có phải hàm chẵn và/hoặc hàm lẻ hay không.

Input, Output và Scoring

Input: (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương t - số bộ dữ liệu (1 \le t \le 10^4).
  • Dòng thứ 2 \times i + 1 (1 \le i \le t) gồm một số nguyên n_i - bậc của đa thức f(x) trong bộ dữ liệu thứ i (0 \le n \le 100).
  • Dòng thứ 2 \times i + 2 (1 \le i \le t) gồm n_i + 1 số nguyên a_0, a_1, ..., a_{n_i} (0 \le a_i \le 10^9).
Output: (màn hình)
  • Với mỗi bộ dữ liệu, in ra kết quả theo bảng sau:
f(x) Không là hàm lẻ Là hàm lẻ
Không là hàm chẵn None Odd
Là hàm chẵn Even Both
Scoring
  • Gọi c là số bộ dữ liệu bạn trả lời đúng và t là số bộ dữ liệu, d = \frac{c}{t}, điểm của bạn sẽ được tính bằng công thức 1 - (1 - d) ^ d.

Sample

Input (bàn phím)
2
2
3 2 1
0
1
Output (màn hình)
None
Even
Note
  • Với x = 1 thì f(x) = 6 và f(-x) = 2. Do f(x) \neq f(-x) và f(x) \neq -f(-x) nên f(x) không phải hàm chẵn và cũng không phải hàm lẻ.
  • Trong ví dụ thứ hai, hiển nhiên f(x) = f(-x) với mọi x.

Cờ vua

flo

Bài đầu tiên của flo và đây là phiên bản reupload :D

Sau một ngày dài mệt mỏi, flo quyết định chơi cờ vua với bạn cậu là huyhau6a2 để xả stress.

Sau khi chơi 69420 ván cờ, flo và huyhau6a2 đã bắt đầu chán chơi cờ theo kiểu bình thường. Thế là cả hai quyết định dùng bàn cờ n\times m vừa mua ở Ohio ra chơi. Nhà của flo có rất nhiều quân mã nên cả hai lấy ra để nghịch. Sau đó, flo vô tình phát hiện ra một bài toán vô cùng thú vị và độc đáo như sau.

Nội dung bài toán

  • Trên bàn cờ n \times m, có một quân mã nằm ở ô (1, 1). Hãy tính số nước đi tối thiểu để di chuyển quân mã đó đến ô (i, j).

Bài toán như vậy thì khá là dễ nên flo đã giải chỉ trong vòng 1 nốt nhạc. Vậy là cậu đã nghĩ ra phiên bản khó hơn như sau.

Nội dung bài toán

  • Gọi F(n, m) = \sum_{i = 3}^{n} \sum_{j = 3}^{m} K(i, j) với K(i, j) là hàm để tính số nước đi tối thiểu để di chuyển quân mã từ ô (1, 1) đến ô (i, j). Cho 2 số nguyên dương n, m, hãy tính F(n, m).
  • Một quân mã chỉ có thể di chuyển từ ô (i, j) sang ô (i+2, j+1), (i+2, j-1), (i-2, j+1), (i-2, j-1), (i+1, j+2), (i-1, j+2), (i+1, j-2), (i-1, j-2) và không được rời khỏi bàn cờ.

Cả flo và huyhau6a2 rất muốn biết đáp án. Tuy nhiên, cả hai đang rất là mệt mỏi. Là một con người tốt bụng, bạn hãy giúp flo và huyhau6a2 tìm đáp án nhé.

Input, Output và Scoring

Input

  • Số nguyên dương t (1 \le t \le 2 \times 10^4).
  • t dòng tiếp theo, mỗi dòng gồm 2 số nguyên dương n, m (3 \le n, m \le 10^{18}).

Output

  • Với mỗi dòng, hãy in ra kết quả sau khi chia lấy dư cho 10^9+7.

Scoring

  • Subtask 1 (10\%): t = 1; 3 \le n, m \le 10^3.
  • Subtask 2 (10\%): 1 \le t \le 2 \times 10^4; 3 \le n, m \le 10^3.
  • Subtask 3 (10\%): t = 1; 3 \le n, m \le 10^6.
  • Subtask 4 (10\%): 1 \le t \le 2 \times 10^4; 3 \le n, m \le 10^6.
  • Subtask 5 (15\%): t = 1; 3 \le n, m \le 10^{12}.
  • Subtask 6 (15\%): 1 \le t \le 2 \times 10^4; 3 \le n, m \le 10^{12}.
  • Subtask 7 (15\%): t = 1; 3 \le n, m \le 10^{18}.
  • Subtask 8 (15\%): 1 \le t \le 2 \times 10^4; 3 \le n, m \le 10^{18}.

Example

Input
2
10 12
5 9
Output
390
74

Bedan Contest #02 - C - Phân số tối giản

flo

Trong tiết toán ngày hôm nay, huyhau6a2 đã được học về phân số. Theo cậu biết, phân số là sự biểu diễn số hữu tỷ dưới dạng tỷ lệ của hai số nguyên với số ở trên là tử số, còn số ở dưới là mẫu số khác 0. Và như bao như tiết học khác, huyhau6a2 lại được giao một đống bài tập về phân số.

Buổi tối hôm đó, huyhau6a2 đang ngồi hoàn thành đống bài tập trên. Các bài này vô cùng dễ nhưng có một số bài lại khiến cậu sợ bởi cậu không chắc chắn về kết quả của mình. Ví dụ như là bài sau.

Nội dung bài toán

Cho phân số \frac{a}{b}, hãy kiểm tra liệu phân số \frac{a}{b} có phải là phân số tối giản không.

Bài trên khá đơn giản nhưng huyhau6a2 lại không chắc chắn vể kết quả mà cậu tính ra được. Bạn có thể kiểm tra giúp huyhau6a2 chứ.

Input, Output and Scoring

Input (frac.inp)

  • Số nguyên dương t (1 \le t \le 10^5).
  • t dòng tiếp theo, mỗi dòng gồm 2 số nguyên dương a, b (1 \le a, b \le 10^{18}).

Output (frac.out)

  • Với mỗi dòng, hãy in ra Yes nếu nó là phân số tối giản và No nếu ngược lại.

Example

Input

3
4 2
3 4
6 9

Output

No
Yes
No

Bedan Contest #02 - D - Trò chơi với số

flo

Hôm nay là một ngày mưa to gió lớn nên huyhau6a2 được nghỉ ở nhà. Hằng ngày cậu có thể đi chơi với bạn gái nhưng do điều kiện thời tiết như này nên cậu chỉ có thể lựa chọn ở nhà. Quá chán, huyhau6a2 bỗng nghĩ ra một trò chơi như sau.

  • Cậu có hai số nguyên n và m. Ban đầu, m bằng 0.
  • Tạo tất cả các số n khác nhau bằng cách hoán đổi vị trí của 2 chữ số bất kỳ của n.
  • Với mỗi số n tạo được, cộng nó vào m.

huyhau6a2 thắc mắc với số nguyên dương n cậu chọn thì khi trò chơi kết thúc, m sẽ có giá trị là bao nhiêu. Vì số cậu chọn quá lớn nên cậu không thể tính được. Bạn hãy tính giúp huyhau6a2 nhé.

Input, Output and Scoring

Input (numgame.inp)

  • Số nguyên dương t (1 \le t \le 10^2).
  • t dòng tiếp theo, mỗi dòng gồm 1 số nguyên dương n (1 \le n \le 10^{10^5}).

Output (numgame.out)

  • Với mỗi dòng, hãy in ra kết quả sau khi chia lấy dư cho 1234567891.

Scoring

  • Subtask 1 (20\%): 1 \le n \le 10^6.
  • Subtask 2 (80\%): Không giới hạn gì thêm.

Example

Input

3
69
133
420

Output

165
777
1332
Note
  • Với n = 69 thì ta sẽ tạo được 2 số 96 và m sẽ có giá trị là 69+96 = 165.
  • Với n = 133 thì ta sẽ tạo được 3 số 313, 331 và m sẽ có giá trị là 133+313+331 = 777.
  • Với n = 420 thì ta sẽ tạo được 6 số 024, 042, 204, 240, 402 và m sẽ có giá trị là 024+042+204+240+402+420 = 1332.

Bedan Contest #02 - B - Qua cầu

flo

Đây mới là bản dễ.

Sau một ngày dài đi học mệt mỏi, huyhau6a2 quyết định chơi trò chơi điện tử yêu thích của cậu ấy. Trò chơi khá đơn giản, chỉ cần điều khiển nhân vật vượt qua các chương ngại vật của mỗi màng chơi.

Sau khoảng 69420s chơi, huyhau6a2 cuối cùng đã đến được màng cuối cùng. Ở màng chơi này, cậu cần phải điều khiển nhân vật của mình vượt qua 1 cây cầu. Cây cầu này có tất cả là n ô và ô thứ i sẽ có a_i điểm. Tại mỗi bước đi, huyhau6a2 có thể nhảy sang bất kì ô nào miễn vị trí của ô đó lớn hơn vị trí của ô mà cậu bắt đầu nhảy. Khi vượt qua cây cầu, tích số điểm trên những ô mà huyhau6a2 đã điều khiển nhân vật của mình nhảy lên phải là 1 số chính phương thì huyhau6a2 mới chiến thắng.

huyhau6a2 thắc mắc có bao nhiêu cách để điều khiển nhân vật của cậu vượt qua cây cầu để cậu giành được chiến thắng. Bạn hãy tính giúp huyhau6a2 nhé.

Input, Output and Scoring

Input (bridge.inp)

  • Số nguyên dương n (1 \le n \le 5 \times 10^3).
  • Dãy a gồm n phần tử a_1, a_2, ..., a_n (1 \le a_i \le n).

Output (bridge.out)

  • Với mỗi dòng, hãy in ra kết quả sau khi chia lấy dư cho 1234567891.

Scoring

  • Subtask 1 (15\%): 1 \le n \le 20.
  • Subtask 2 (35\%): 1 \le n \le 70.
  • Subtask 3 (50\%): Không giới hạn gì thêm.

Example

Input

4
2 4 2 1

Output

7
Note
  • Có 7 cách điều khiển là đi lên các ô (2), (4), (1, 3), (2, 4), (1, 2, 3), (1, 3, 4), (1, 2, 3, 4).

Bedan Contest #02 - A - Đếm số chia hết

flo

Đây là bài đầu tiên nên tôi cũng không muốn thêm tình huống hay làm đề bài dài hơn để làm rối bạn hết cả. Vì thế, nội dung bài này tôi viết khá là ngắn gọn, cụ thể là như sau.

Nội dung bài toán

Cho dãy a gồm n phần tử, có q truy vấn cần thực hiện có dạng như sau:

  • l r m: Đếm số lượng số trong đoạn [l, r] mà m chia hết.

Đấy, tôi đã nói rồi. Đề bài chỉ ngắn gọn thế thôi, chúc bạn may mắn và đừng bị vấn đề kĩ năng nhé.

Input, Output and Scoring

Input (divcnt.inp)

  • 2 số nguyên dương n, q (1 \le n, q \le 2 \times 10^5).
  • Dãy a gồm n phần tử a_1, a_2, ..., a_n (1 \le a_i \le 2 \times 10^5).
  • q dòng tiếp theo, mỗi dòng là 3 số nguyên dương l, r, m (1 \le l \le r \le n; 1 \le m \le 2 \times 10^5).

Output (divcnt.out)

  • Với mỗi dòng, hãy in ra kết quả thỏa mãn.

Scoring

  • Subtask 1 (20\%): 1 \le n, q \le 2 \times 10^3.
  • Subtask 2 (80\%): Không giới hạn gì thêm.

Example

Input

5 2
1 2 4 3 2
2 5 6
1 3 10

Output

3
2
Note
  • Trong đoạn [2, 5], có 3 số mà 6 chia hết là 2, 3, 2.
  • Trong đoạn [1, 3], có 2 số mà 10 chia hết là 1, 2.

TLEOJ Contest #10 - Cầu thủ

tourist

TLE CHAMPIONS LEAGUE là giải đấu danh giá và lâu đời. Nhiều năm về trước, TLE CHAMPIONS LEAGUE được tổ chức lần đầu vào những năm 20 của thế kỉ XXI. Mùa giải đầu tiên với sự đăng cai của Sunlight đã chứng kiến những cuộc lội ngược dòng ngoại mục. Năm đó, đội bóng Pre-MU không tham dự vì lí do chưa mua được bản quyền. Năm nay, dưới sự chèo lái của huấn luyện viên đại tài tourist với các cầu thủ như Maguire, Ohaha,... sẽ mang đến bất ngờ cho giải đấu năm tới nhưng Pre-MU đang gặp phải 1 vấn đề như sau.

Đội bóng Pre-MU của tourist làm huấn luyện viên có n cầu thủ, cầu thủ thứ i có chiều cao là A_i. Trong quá trình chuẩn bị cho giải TLE CHAMPIONS LEAGUE tổ chức vào năm sau, tourist nhận thấy:

  • Trình độ huấn luyện của mình là S.
  • Khả năng tấu hài của đội bóng sẽ là S\times |A_i-A_{i-1}| với mọi 2\le i\le n.

Vì tourist không kịp chuẩn bị cầu thủ mới để khả năng tấu hài là nhỏ nhất nên đến nhờ jiangly. Biết vậy, jiangly đã mang ra lọ Calcium gia truyền tinh khiết 69\% để buff chiều cao cho các cầu thủ:

  • Nếu cầu thủ cao thêm k đơn vị thì khả năng tấu hài của cả đội sẽ tăng thêm k^2 đơn vị.

Được lọ thuốc gia truyền này, tourist về để dùng cho các cầu thủ của mình. Hãy giúp tourist sử dụng thuốc như thế nào để khả năng tấu hài là nhỏ nhất. Và tất nhiên mỗi cầu thủ chỉ được dùng loại thuốc 1 lần.

Input, output và Subtask

Input

  • Dòng đầu tiên gồm 2 số nguyên n và S (n\le 10^4,S\le 10^6).
  • Dòng thứ hai là chiều cao của n cây A_1,A_2,A_3,...,A_n (A_i\le 10^3).

Output

  • In ra một số duy nhất là độ tấu hài nhỏ nhất có thể. Vì kết quả có thể rất lớn nên hãy xuất kết quả sau khi mod\ 10^9+7.

Example

Input

6 3
2 4 6 3 1 7

Output

35
Note
  • Một phương án tối ưu là cho cầu thủ thứ 1 thêm 1 đơn vị, cầu thủ thứ 5 thêm 2 đơn vị. Khi đó chiều cao các cầu thủ sẽ là (3,4,6,3,3,7).
  • Độ tấu hài sẽ là 3\times (1+2+3+0+4)+1+4=35 là nhỏ nhất.

TLEOJ Contest #10 - Trồng cây

Ông A là một địa chủ ở một vùng đất tên là ACP. Ông A có một mảnh đất rộng lớn và ông A quyết định trồng n cây. Các cây được đánh số từ 1 đến n. Cây thứ i có chiều cao là A_i.

Sau khi trồng n cây xong, ông A có một máy cắt cây, máy cắt cây của ông A rất lạ kì. Trên máy cắt cây đó sẽ nhận vào một giá trị x(1≤x≤10^9) mà ông A nhập trên màn hình của máy, máy cắt cây đó chỉ cắt những cây nào có độ dài lớn hơn hoặc bằng x, nó cứ cắt cho đến khi độ dài cây bé hơn x thì không cắt nữa.

Một cây được gọi là được cắt hết khi và chỉ khi độ dài sau khi cắt bằng 0, độ cao cây bằng 0 không có nghĩa là không có cây.
Ví dụ : A=[8,5,4,7,6] và x=3. Khi sử dụng máy cắt đó để cắt cây thứ 1 và thứ 5 thì độ cao của n sau khi cắt là A=[2,5,4,7,0].
Ông B thấy mảnh đất của ông A và chiếc máy cắt cây kì lạ nên hiếu kì đến chơi, sau khi ông B quan sát thì ông B đố ông A một câu đố như sau:

  • Chọn ra k cây, sau đó sử dụng máy cắt cây lạ kì đó cắt k cây này.
  • k cây sau khi cắt phải được cắt hết (nghĩa là độ dài của k cây sau khi cắt phải bằng 0)
  • Ông A sẽ nhập trên màn hình máy cắt cây một giá trị x, máy cắt sẽ thực hiện cắt cây với mô tả trên.
  • Máy cắt sẽ không nhận giá trị khác khi đang cắt k cây đó, nghĩa là ông A sẽ phải sử dụng máy cắt với giá trị x để cắt k cây đó.
  • Với những tiêu chí trên thì ông B muốn hỏi giá trị x tối đa có thể có được sau khi chọn k cây là bao nhiều ?

Ông B sẽ hỏi Q câu hỏi, mỗi câu hỏi là một giá trị k

Yêu cầu: Hãy giúp ông A trả lời Q câu hỏi này nhé !

Input, output và Subtask

Input

  • Dòng đầu tiên gồm 2 số nguyên n và Q.
  • Dòng thứ hai là chiều cao của n cây A_1,A_2,A_3,...,A_n.
  • Q dòng tiếp theo, mỗi dòng là một số nguyên dương k(k≤n).

Output

  • Gồm Q dòng, mỗi dòng là một số nguyên tương ứng với thứ tự đầu vào của câu hỏi.
Scoring
  • Subtask 1(25\% số điểm) : 1 ≤ n ≤ 20, 1 ≤ Q ≤ 10, 0 ≤ A_i ≤ 10^9.
  • Subtask 2(25\% số điểm) : 1 ≤ n ≤ 2000, 1 ≤ Q ≤ 2000, 0 ≤ A_i ≤ 10^9.
  • Subtask 3(25\% số điểm) : 1 ≤ n ≤ 2 ∗ 10^5, 1 ≤ Q ≤ 2 ∗ 10^5, 0 ≤ A_i ≤ 2 ∗ 10^7.
  • Subtask 4(25\% số điểm) : n , Q \le 12000, 1 \le a_i \le 10^9

Example

Input

6 3
2 4 6 3 1 7
1
2
3

Output

7
3
2