Pre TS10 2024 - TLEOI 2.0 - Ngày thi thứ nhất
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>.inpvà file dữ liệu đầu ra có tên là<mã bài>.out, ví dụ như bài có mã làEQSTRthì sẽ có các file làEQSTR.inpvà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
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>.inpvà file dữ liệu đầu ra có tên là<mã bài>.out, ví dụ như bài có mã làEQSTRthì sẽ có các file làEQSTR.inpvà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:
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ẻ
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
Lại là 1 bài toán khác về cờ vua.
Hôm nay là một ngày đẹp trời, , và mondellbit009 quyết định đến nhà của để 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à 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 . 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 .
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 , 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
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
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
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
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
Một bài toán rất thú vị về tổng chữ số
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 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ẻ
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
Bài đầu tiên của và đây là phiên bản reupload :D
Sau một ngày dài mệt mỏi, quyết định chơi cờ vua với bạn cậu là để xả stress.
Sau khi chơi 69420 ván cờ, và đã 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 có rất nhiều quân mã nên cả hai lấy ra để nghịch. Sau đó, 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 đã 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ả và 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 và 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
Trong tiết toán ngày hôm nay, đã đượ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, lại được giao một đống bài tập về phân số.
Buổi tối hôm đó, đ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 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 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ố
Hôm nay là một ngày mưa to gió lớn nên đượ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, 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.
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 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
Đây mới là bản dễ.
Sau một ngày dài đi học mệt mỏi, 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, 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, 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à đã đ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ì mới chiến thắng.
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 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
Đâ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ủ
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 đã 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 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 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, 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ì 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ờ . Biết vậy, đã 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, về để dùng cho các cầu thủ của mình. Hãy giúp 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
