TLEOJ Contest #16 - Truy vấn MEX
Hôm nay được học định nghĩa của MEX của tập hợp và cảm thấy rất hứng thú với định nghĩa này nên đã nghĩ ra 1 bài toán liên quan đến hàm MEX này.
Cho mảng n phần tử a_1, a_2, …, a_n.
Cho q truy vấn, mỗi truy vấn bạn được cho 1 số nguyên dương x.
Xét mảng b với b_i=a_i+i \times x với (1 \leq i \leq n).
Với mỗi truy vấn hãy in ra MEX của mảng b của truy vấn đó.
Định nghĩa của MEX
Định nghĩa MEX của tập S
MEX của một tập hợp S là số nguyên không âm nhỏ nhất không thuộc tập hợp S .
Giải thích cụ thể
- MEX của S là số nguyên không âm nhỏ nhất mà không xuất hiện trong S .
- Ví dụ:
- Nếu S = \{0, 1, 2, 4, 5, -3\} , thì MEX của S là 3 vì 3 là số nguyên không âm nhỏ nhất không có trong S .
- Nếu S = \{1, 2, 3, -1, -2, -3, 69, -96, 169, 196, -11092001\} , thì MEX của S là 0 vì 0 là số nguyên không âm nhỏ nhất không có trong S .
Input and Output
Input
- Dòng đầu chứa hai số nguyên n, q (1 \leq n, q \leq 10^5)
- Dòng thứ hai chứa n số nguyên a_i (-10^9 \leq a_i \leq 10^9)
- q dòng sau dòng thứ i gồm 1 số nguyên dương là x (1 \leq x \leq n) của truy vấn thứ i
Output
- Một dòng duy nhất chứa số nguyên là đáp án của bài toán
Subtask
- Subtask 1 (50\% số điểm) : 1 \leq n, q \leq 1000.
- Subtask 2 (50\% số điểm còn lại) : Không có giới hạn gì thêm.
Test 1
Input
5 2
-1 -1 -6 -2 4
1
2
Output
3
2
TLEOJ Contest #16 - Trung bình hay trung vị
Cho dãy số nguyên dương a có n phần tử, tìm số dãy con b không rỗng của a thỏa mãn đồng thời hai điều kiện sau:
- Dãy b có kích thước lẻ.
- Trung bình cộng dãy b nhỏ hơn trung vị dãy b
Dãy con
Một dãy con của một dãy số a là một dãy số có thể thu được bằng cách xóa đi một số phần tử trong a mà không thay đổi thứ tự các phần tử còn lại. Nói cách khác, nếu a là dãy số a_1, a_2, ..., a_n , thì một dãy con độ dài k của a sẽ có dạng a_{i_1}, a_{i_2}, ..., a_{i_k} với 1 \leq i_1 < i_2 < ... < i_k \leq n .
Trung bình cộng là gì
Trung bình cộng của dãy b có kích thước m là \frac{\sum^m_{i=1}b_i}{m}.
Trung vị là gì
Trung vị của dãy b tăng dần có kích thước m có giá trị bằng b_{\frac{m+1}{2}}, nếu b chưa được sắp xếp tăng dần, sắp xếp b theo giá trị tăng dần rồi mới tìm trung vị.
Yêu cầu: In ra số dãy con thỏa mãn điều kiện theo \text{mod} 998244353.
Input, Output và Subtasks
Input: (bàn phím)
- Dòng đầu tiên chứa số nguyên dương n (1\le n\le 100).
- Dòng thứ hai gồm n số nguyên dương a_i (a_i\le 500).
Output: (màn hình)
- In ra số dãy con thỏa mãn điều kiện theo \text{mod} 998244353.
Subtasks
Gọi x=\text{max}(a_1,a_2,\dots,a_n)
- Subtask 1 (20\%) n\le 10.
- Subtask 2 (20\%) n\le 50,x\le 100.
- Subtask 3 (20\%) x=2.
- Subtask 4 (40\%) không có ràng buộc gì thêm.
Sample
Input (bàn phím)
5
1 2 2 3 4
Output (màn hình)
2
Notes
Ta tìm được hai dãy con là:
- \{1;3;4\} có trung bình cộng là \frac{1+3+4}{3}\approx 2.6, có trung vị là 3.
- \{1;2;2\} có trung bình cộng là \frac{1+2+2}{3}\approx 1.6, có trung vị là 2.
TLEOJ Contest #15 - Tree GCD
Cho 1 cây có n đỉnh, các đinh được đánh số từ 1 đến n. Đỉnh thứ i có trọng số là w_i. Gọi d(x,y,z) là số cạnh ít nhất để liên thông 3 đỉnh x,y,z (1\le x<y<z\le n). Gọi g(x,y,z) là số lượng ước nguyên tố của gcd(w_x,w_y,w_z).
Yêu cầu: Hãy tính tổng tất cả các giá trị g(x,y,z) \times d(x,y,z) với mọi x,y,z thỏa mãn 1\le x<y<z\le n.
Input, Output và Subtasks
Input: (TREEGCD.INP)
- Dòng đầu tiên gồm 1 số nguyên dương n (1\le n\le 2.10^5).
- Dòng tiếp theo gồm n số nguyên dương w_1,w_2,...,w_n(1\le w_i\le 2.10^5).
- Tiếp theo là n-1 dòng mô tả cây, mỗi dòng gồm 2 nguyên dương u,v(1\le u,v\le n,u\neq v) cho biết có cạnh nối giữa đỉnh u và đỉnh v. Đảm bảo dữ liệu vào luôn là cây.
Output: (TREEGCD.OUT)
- Gồm 1 số nguyên là đáp án của bài toán. Kết quả có thể rất lớn nên hãy chia lấy dư cho 10^9+7.
Subtasks
- Subtask 1: Đảm bảo n\le 200. (20% số điểm)
- Subtask 2: Đảm bảo n\le 2.10^5,w_i\le 2. (30% số điểm)
- Subtask 3: Không có ràng buộc gì thêm. (50% số điểm)
Sample
Input (TREEGCD.INP)
4
1 2 2 4
1 2
1 3
1 4
Output (TREEGCD.OUT)
3
TLEOJ Contest #16 - Dãy con thú vị
Cho số nguyên dương L và dãy số nguyên a_1, a_2,..., a_{n-1}, a_n (a_i \leq L). Một dãy con khác rỗng của a được tạo ra bằng cách xóa đi một vài phần tử (có thể không xóa phần tử nào, nhưng phải giữ lại ít nhất một phần tử) và giữ nguyên thứ tự các phần tử còn lại. Độ thú vị của một dãy b_1, b_2,..., b_{m-1}, b_m được định nghĩa là:
Tìm độ đẹp lớn nhất có thể của một dãy con không rỗng của a
Input and Output
Input
- Dòng đầu gồm hai số nguyên n, L (n \leq 10^5, 1 \leq L \leq min(n, 50))
- Dòng thứ hai chứa n số nguyên dương a_1, a_2,..., a_{n-1}, a_n
- Dòng thứ ba gồm L số nguyên p_1, p_2,...,p_L (|p_i| \leq 10^4)
- L dòng tiếp theo, dòng thứ i chứa L số nguyên q_{i1}, q_{i2},..., q_{iL} (|q_{ij}| \leq 10^4)
Output
- Một dòng duy nhất chứa số nguyên là độ đẹp lớn nhất tìm được.
Scoring
- Subtask 1 (40\%): n \leq 20
- Subtask 2 (30\%): n \leq 3*10^3
- Subtask 3 (30\%): Không có ràng buộc gì thêm
Test 1
Input
4 3
1 2 3 2
1 2 3
1 2 3
1 2 3
1 2 3
Output
15
Note
Dãy con cần tìm là {1, 2, 3, 4}. Độ đẹp là (1+2+3+2) + (2+3+2) = 8+7 = 15
Test 2
Input
7 4
3 2 3 4 1 4 3
1 -1 3 -1
1 0 10 4
-100 -10 1 7
-3 -2 4 -2
3 2 1 0
Output
24
Note
Dãy con cần tìm là {3, 3, 4, 1, 3}. Độ đẹp là (3+3-1+1+3)+(4-2+3+10) = 9+15 = 24
TLEOJ Contest #16 - Cuộc phiêu lưu trên đồ thị Descartes
Đồ thị Descartes là một khái niệm không xa lạ với mọi người. Chắc hẳn trong những năm tháng THCS, khi là những cô bé, cậu bé mới lớn, chúng ta đã làm việc rất nhiều với đồ thị này.
Đồ thị Descartes được đặt theo tên của nhà toán học và triết học người Pháp René Descartes (1596-1650). Ông được biết đến với câu nói nổi tiếng "Cogito, ergo sum" (Tôi tư duy, vậy tôi tồn tại). Descartes không chỉ đóng góp cho triết học mà còn có những phát minh quan trọng trong lĩnh vực toán học. Hệ tọa độ Descartes, nền tảng của đồ thị này, được ông phát triển, giúp kết nối giữa hình học và đại số.
Hôm nay bạn X quyết định thực hiện một cuộc phiêu lưu trên đồ thị này!
Cho n điểm trên mặt phẳng.
X muốn tìm đường đi dài nhất thoả mãn điều kiện sau để thực hiện cuộc phiêu lưu:
Đầu tiên xuất phát tại 1 điểm bất kì
Trong 1 bước nếu đang đứng tại ô (x, y) có thể đi sang (a, b) nếu x \leq a và y \leq b
Hãy tìm độ dài đó nhé!
Input and Output
Input
- Dòng đầu gồm số nguyên n (n \leq 10^5)
- n dòng sau, mỗi dòng chứa 2 số nguyên dương x_i, y_i (1 \leq x_i, y_i \leq 10^9) cách nhau một dấu cách.
Output
- Một dòng duy nhất chứa số nguyên là đáp án của bài toán
Test 1
Input
4
1 2
2 5
3 3
4 4
Output
3
Note
Từ điểm (1, 2) \rightarrow (3, 3) \rightarrow (4, 4).
TLEOJ Contest #15 - Số miền
Cho n đường thẳng nằm trong cùng 1 mặt phẳng sao cho không có 2 đường thẳng nào song song và không có 3 đường thẳng nào giao nhau.
Yêu cầu: Đếm số miền mà các mặt phẳng đã chia (theo điều kiện của đề bài thì đáp án luôn chỉ có 1).
Input, Output và Subtasks
Input: (bàn phím)
- Dòng đầu tiên chứa số nguyên dương t (1\le t\le 10^5) - số lượng truy vấn
- i dòng tiếp theo, dòng thứ i gồm 1 số nguyên dương n(1\le n\le 10^9).
Output: (màn hình)
- Với mỗi truy vấn in ra đáp án cần tìm. Vì kết quả có thể rất lớn nên ta lấy phần dư của kết quả khi chia cho 10^9+7.
Subtasks
- Subtask 1 (10\%) n\le 10.
- Subtask 2 (30\%) n\le 10^3
- Subtask 3 (20\%) n\le 10^6
- Subtask 4 (40\%) không có ràng buộc gì thêm.
Sample
Input (bàn phím)
1
3
Output (màn hình)
7
Notes

- Như các bạn có thể thấy ở hình dưới đây, nếu thỏa mãn các điều kiện trên thì sẽ luôn có 7 miền được chia ra.
TLEOJ Contest #16 - I know what we're gonna do today
Phineas và Ferb đang có một mùa hè tuyệt vời với số ngày là n, trong mùa hè đó, Phineas và Ferb đã có dự định xây dựng một số ngày, một ngày đã được lên kế hoạch là một ngày có số thứ tự k mà k chia hết cho ít nhất một phần tử trong mảng số nguyên a gồm m phần tử cho trước.
Bạn hãy giúp Phineas và Ferb tính số ngày đã được lên kế hoạch để từ đó họ có kế hoạch để lên công việc cho những ngày còn lại nhé.
Input and Output
Input
- Dòng đầu tiên gồm hai số nguyên n và m - số lượng ngày trong kì nghỉ của Phineas và Ferb cùng với độ dài của mảng số nguyên a. (1\leq n\leq 10^{18},\ 1\leq m\leq 18)
- Dòng thứ hai gồm m số nguyên với số nguyên thứ i là phần tử a_i của mảng a. (1\leq a_i\leq n)
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 - số ngày đã được lên kế hoạch trong n ngày.
Subtask
- Subtask 1: m\leq 3. (20\% số điểm)
- Subtask 2: n\leq 5.10^6. (20\% số điểm)
- Subtask 3: Không có ràng buộc gì thêm. (60\% số điểm)
Test 1
Sample input
5 2
2 3
Sample output
3
Note
- Các ngày đã được lên kế hoạch là 2,\ 3,\ 4.
TLEOJ Contest #14 - Pride Paths
Có ai ở đây biết tháng 6 này là tháng dành cho người thuộc nhóm \text{LGBT+} không? Giờ thì bạn biết rồi đấy.
Là một con người theo dõi xã hội phương Tây trong nhiều năm, đó cũng là một phần vinh dự của tôi khi được làm một trong những khán giả xem những người thuộc nhóm \text{LGBT+} diễn hề trong những ngày này. Và có cách gì tốt hơn khi làm điều đó khi gắn nó vào một thứ không liên quan gì tới tháng này nhỉ?
Cho một đồ thị gồm n đỉnh và m cạnh vô hướng, cạnh thứ i nối hai đỉnh u_i và v_i.
Đỉnh thứ i chỉ mang đúng một màu, được chọn từ 26 mã màu có sẵn có thể tô lên đồ thị, được đánh dấu từ A đến Z.
Nhận thấy lá cờ mà nhóm \text{LGBT+} vẽ ra cho từng nhóm người có ba dải màu trên từng lá cờ không? Cho một bộ ba mã màu khác nhau z_1 \ne z_2 \ne z_3, tạo thành một xâu Z, cũng như cách lá cờ đó được tô màu vậy. Xác định xem có tồn tại một tập hợp các điểm a_1, a_2 ,a_3 ,..., a_{k - 1}, a_k với chỉ số khác nhau đôi một thỏa mãn rằng:
- Trong đồ thị con chỉ chứa các đỉnh a_1, a_2, ..., a_{k - 1}, a_k và các cạnh nối giữa hai đỉnh bất kì nằm trong tập này, tồn tại ít nhất một cách di chuyển trên đồ thị đó giữa hai cặp đỉnh bất kì.
- Màu được tô ở đỉnh a_i chỉ có thể là z_1 hoặc z_2 hoặc z_3, với mọi 1 \le i \le k.
- Mỗi màu trong số ba màu z_1, z_2, z_3 phải được tô lên ít nhất một trong số k điểm trong tập.
\text{Input} PPS.inp
- Dòng một gồm ba số n, m (1 \le n \le 10^5; n - 1 \le m \le \text{min}(5*10^5,\frac{n(n-1)}{2}), thể hiện số lượng đỉnh và số lượng cạnh của đồ thị, và q (1 \le q \le 15600), thể hiện số lượng truy vấn.
- Dòng thứ hai gồm một xâu S được đánh số từ 1 đến n, chỉ gồm các kí tự \text{Latin} hoa, với S[i] thể hiện mã màu của đỉnh thứ i (với 1 \le i \le n).
- m dòng tiếp theo, dòng thứ i gồm hai số u_i, v_i (1 \le u_i \ne v_i \le n), thể hiện rằng tồn tại một cạnh hai chiều nối giữa hai đỉnh u_i và v_i trong đồ thị.
- q dòng cuối cùng, mỗi dòng gồm một xâu kí tự Z có đúng ba kí tự \text{Latin} hoa, thể hiện một truy vấn. Xâu Z đảm bảo rằng z_1 \ne z_2 \ne z_3.
- Dữ liệu trong \text{Input} được đảm bảo rằng giữa hai điểm có không quá một cạnh nối giữa chúng và tồn tại ít nhất một cách di chuyển giữa một điểm bất kì tới điểm còn lại.
\text{Output} PPS.out
- Với mỗi truy vấn, in ra \text{YES} / \text{NO} đối với câu hỏi trên đề với xâu kí tự Z của mỗi truy vấn.
\text{Scoring}
- Subtask \text{#}1 (50\% số điểm): n \le 26; các S[i] khác nhau đôi một.
- Subtask \text{#}2 (30\% số điểm): m = n - 1.
- Subtask \text{#}3 (20\% số điểm): Không có điều kiện gì thêm.
\text{Examples}
\text{Test #}1
\text{Input}
6 7 3
ABDEBC
1 2
5 3
1 3
2 3
5 2
4 2
5 6
ABC
AEC
AZC
\text{Output}
YES
NO
NO
\text{Explanations}
Ở testcase \text{#}2 và \text{#}3, không tồn tại một bộ a_i phù hợp.
Ở testcase \text{#}1, bộ a_i phù hợp và duy nhất phù hợp là [1; 2; 5; 6].

Bộ đỉnh này thỏa mãn vì tồn tại một cách di chuyển giữa các cặp đỉnh (1; 2), (1; 5), (1; 6), (2; 5), (2; 6), (5; 6), và màu được tô ở bốn đỉnh này là \text{A}, \text{B} (ở đỉnh 2 và 5), và \text{C}.
TLEOJ Contest #14 - Everyone Everywhere Cheating All At Once
Reset não xong chưa? Đọc đề tiếp nè.
Nếu không có hứng thú đọc đề, vui lòng đọc từ đoạn thứ 3 của đề bài.
Nói sơ một chút về các trò chơi. Một trò chơi không thể hay nếu không có một chuỗi những sự kiện liên tiếp giữa các người chơi, liên tục đưa ra các nước đi mà họ cho là hợp lí nhất để tạo cho họ một lợi thế dẫn trước những người chơi khác, từ đó dẫn đến chiến thắng. Những trường hợp đó, chúng ta có thể gọi là một \text{Event Sequence Simulation}, khi mà các hành động của người chơi này có thể ảnh hưởng một phần hoặc toàn bộ, trực tiếp hoặc gián tiếp lên lối chơi của những người khác.
Hai học sinh quyết định thử nghiệm về tình huống này. Tạm gọi hai người này với nickname \text{Alan} và \text{Bob}, vì tôi không muốn expose tên hai người đã thực sự làm điều này. Họ quyết định lấy bộ bài \text{Yugioh} mà họ đã sưu tập từ lâu ra để thử. Sở dĩ họ chọn trò đấu bài này vì tình huống \text{chain} hiệu ứng của lá bài của mình lên lá bài của đối thủ rất thường xuyên xảy ra, với các lá \text{Quick Spells} và \text{Counter Traps}, và đôi khi là từ hiệu ứng quái thú.
Tại một thời điểm trong ván đấu, sau khi một người chơi nào đó đã thực hiện một tác vụ nào đó, hai người chơi đang ở một cây trò chơi, với gốc của cây là tình huống hai người đang ở hiện tại. Cây trò chơi bao gồm n game-states, được đánh số từ 1 đến n, và hai người đang ở game-state \text{#}1, là gốc của cây. Có n - 1 cách để tiếp tục cho tình huống tiếp diễn, phương án thứ i được biểu diễn bởi một cạnh có hướng từ game-state \text{#}u_i đến game-state \text{#}v_i, biểu thị tại game-state \text{#}u_i, phương án thứ i đó sẽ đưa cả hai người đến với game-state \text{#}v_i. Trên cạnh đó được gán một chữ cái, được lấy từ chữ cái đầu từ nickname của họ (\text{A} hoặc \text{B}), cho biết rằng trò chơi chỉ được tiếp tục bằng cách đi qua cạnh đó bởi \text{Alan} (nếu đó là kí tự \text{A}), hoặc \text{Bob} (nếu đó là kí tự \text{B}). Game-state \text{#}i (trong máy tính phân tích) sẽ có một chỉ số P[i], biểu thị rằng:
- Nếu P[i] = 1, nghĩa là \text{Alan} sẽ có lợi thế, nếu tình huống dừng tại game-state \text{#}i.
- Nếu P[i] = -1, nghĩa là \text{Bob} sẽ có lợi thế, nếu tình huống dừng tại game-state \text{#}i.
- Nếu P[i] = 0, nghĩa là trò chơi vẫn sẽ ở thế cân bằng, nếu tình huống dừng tại game-state \text{#}i.
Dù là một trò chơi tình nghĩa anh em và mang tính chất nghiên cứu, nhưng cả hai không biết rằng, đối thủ của mình đã kịp và lén lút gian lận, sử dụng máy tính để phân tích ra cây trò chơi mà đã được phân tích ở trên. Họ quyết định từ đầu, rằng ở một game-state, mỗi người sẽ có hai lựa chọn là \text{stop} và \text{continue}. Người nào không thực hiện action gần nhất trước khi đến game-state này sẽ được quyết định trước. Tình huống sẽ được xử lí như sau:
- Nếu cả hai người chọn \text{stop}, tình huống sẽ dừng tại game-state đó.
- Nếu có đúng một người chọn \text{continue}, người chọn \text{continue} sẽ được chọn một hướng đi có ghi chữ cái đầu tên họ và tiếp tục diễn biến của tình huống đó.
- Nếu cả hai người chọn \text{continue}, để tránh xô xát không cần thiết, hai người quyết định rằng người được ưu tiên chọn ở lượt này sẽ được thực hiện hành động tiếp theo.
Lưu ý: Chỉ có người có thể thực hiện hành động để tiếp tục tình huống mới được chọn \text{continue}. Nếu họ không thể tự mình tiếp tục, lựa chọn của họ sẽ mặc định là \text{stop}.
Vì cả hai người đều gian lận, nên họ sẽ dựa trên thông tin đó để tạo được lợi thế lớn nhất cho bản thân họ.
Hãy cho biết trong một khoảnh khắc nào đó, hai người đang ở game-state \text{#}i, thì lợi thế sẽ thuộc về ai? Biết rằng câu hỏi này yêu cầu bạn sẽ trả lời dựa trên các parallel universes, mà ở mỗi universes như thế, hai người chơi thay vì xuất phát từ game-state \text{#}1, thì ở các parallel universes khác, hai người đó phải đến game-state \text{#}i mới bắt đầu gian lận. Ngoài điều đó ra, cây trò chơi phân tích được, và các luật lệ ở các parallel universes đang xét đến này đều giống nhau.
\text{Input} EECAAO.inp
- Dòng một gồm một số n (1 \le n \le 2 * 10^5), thể hiện số lượng game-states.
- Dòng thứ hai, có n số biểu thị mảng P, với số thứ i biểu thị giá trị của P[i] (-1 \le P[i] \le 1).
- n dòng tiếp theo, dữ liệu được biểu diễn như sau:
- Dòng đầu tiên, sẽ có hai số 0, 1, và một chữ cái l_1 (l_1 \in \{A; B\}). Điều này để tránh softlock ngay ở game-state \text{#}1, khi trong cây trò chơi được miêu tả trên đề không cho biết rằng ai là người đã thực hiện hành động gần nhất trước khi ở game-state gốc.
- n - 1 dòng còn lại, cây trò chơi sẽ được biểu diễn như bình thường. Có tổng cộng n - 1 bộ dữ liệu, bộ dữ liệu thứ i (2 \le i \le n) có dạng hai số u_i và v_i, và một kí tự l_i (1 \le u_i \ne v_i \le n; l_i \in \{A; B\}), thể hiện rằng có một cạnh có hướng nối giữa game-state \text{#}u_i và game-state \text{#}v_i, và chỉ có người có chữ cái đầu trong nickname trùng với l_i mới đưa trò chơi đi theo cạnh đó. Trong một số tình huống, ta có thể nói l_{u_i \rightarrow v_i} = l_i.
- Dữ liệu của cây trò chơi được biểu diễn theo cách sao cho từ game-state \text{#}1, tồn tại một cách điều khiển không-thời gian tới tất cả n - 1 game-states còn lại.
\text{Output} EECAAO.out
- Gồm n số trên một dòng. Số thứ i biểu diễn cán cân lợi thế giữa hai người chơi Alan và Bob trong tình huống, tại một parallel universe mà hai người sẽ bắt đầu gian lận tại game-state \text{#}i, giống như cách mà P[i] được định nghĩa (trên đề).
\text{Scoring}
- Subtask \text{#}1 (10\% số điểm): u_i = 1.
- Subtask \text{#}2 (20\% số điểm): l_i = \text{A} hoặc l_i = \text{B}.
- Subtask \text{#}3 (30\% số điểm): Đồ thị được cho có dạng một đường thẳng.
- Subtask \text{#}4 (10\% số điểm): Game-state gốc sẽ nối đến hai game-state khác, trong khi các game-state \text{#}u (u > 1) chỉ nối đến với nhiều nhất một game-state khác.
- Subtask \text{#}5 (10\% số điểm): Gọi c(u) = [v_1; v_2; ...; v_k] là tập hợp chỉ số của các game-state mà game-state \text{#}u có một cạnh chỉ tới. Dữ liệu thỏa mãn (nếu game-state \text{#}u có cạnh được nối tới các game-state khác) l_{u \rightarrow v_1} = l_{u \rightarrow v_2} = ... = l_{u \rightarrow v_k}.
- Subtask \text{#}6 (20\% số điểm): Không có giới hạn gì thêm.
\text{Examples}
Ở trong các test này, ta sẽ giả định giá trị E[i] là đáp án thứ i cần được in ra \text{Output}.
\text{Test #}1
\text{Input}
3
0 -1 -1
0 1 A
1 2 B
2 3 B
\text{Output}
-1 -1 -1
\text{Explanations}

- Đầu tiên, cần nhận thấy rằng mọi l_i = B (i > 1), nên ở mọi game-state \text{#}1, \text{#}2, \text{#}3 thì \text{Alan} chỉ có thể chọn \text{stop}, do \text{Alan} không thể tự mình tiếp tục cho tình huống diễn biến.
- Xét game-state \text{#}3: Nếu tình huống dừng lại tại game-state này, \text{Bob} chắc chắn có được lợi thế do P[3] = -1. Suy ra, E[3] = -1.
- Xét game-state \text{#}2: Dù \text{Bob} chọn \text{stop} hay \text{continue} thì kết quả Bob nhận được luôn có lợi cho Bob (P[2] = -1 và E[3] = -1), \text{Bob} chắc chắn có được lợi thế. Suy ra E[2] = -1.
- Xét game-state \text{#}1: Nếu \text{Bob} chọn \text{stop}, vì \text{Alan} buộc phải chọn \text{stop} nên tình huống sẽ kết thúc với kết quả hai người huề, vì P[1] = 0. Trong khi đó, nếu \text{Bob} chọn \text{continue}, cả hai người sẽ đến với game-state \text{#}2 và E[2] = -1, \text{Bob} có được lợi thế. Vì \text{Bob} chơi tối ưu nên \text{Bob} sẽ chọn \text{continue} ở game-state này và chắc chắn có được lợi thế. Suy ra E[1] = -1.
Vì ở cả ba game-states, nếu \text{Bob} chơi tối ưu thì sẽ luôn có được lợi thế, nên cả ba số cần in ra là -1.
\text{Test #}2
\text{Input}
4
0 1 -1 1
0 1 A
1 2 B
1 3 A
1 4 B
\text{Output}
0 1 -1 1
\text{Explanations}

- Xét đồng thời cả ba game-state \text{#}2, \text{#}3, \text{#}4: Nếu tình huống dừng lại tại các game-state này, \text{Bob} chắc chắn có được lợi thế ở game-state \text{#}3 (P[3] = -1), và \text{Alan} có lợi thế ở game-state \text{#}2 và \text{#}4 (P[2] = P[4] = 1). Suy ra E[3] = -1, E[2] = E[4] = 1.
- Xét game-state \text{#}1: Ở game-state này, \text{Bob} được ưu tiên chọn trước. Nhận thấy rằng nếu chọn \text{continue}, \text{Alan} chọn gì cũng đem lại lợi thế cho anh ta (vì ở hai game-state \text{#}2 và \text{#}4, hai game-state mà \text{Bob} sẽ đưa trò chơi tới, E[2] = E[4] = 1, không quan trọng \text{Alan} chọn gì do \text{Bob} có quyền ưu tiên), nên \text{Bob} quyết định chọn \text{stop}, bởi với quyết định này, \text{Bob} chắc chắn không thiệt, do hai trường hợp có thể xảy ra là: hoặc \text{Alan} chọn \text{continue} và đem lại lợi thế cho \text{Bob} (do ở game-state \text{#}3 mà \text{Alan} có thể đưa trò chơi tới, E[3] = -1) hoặc \text{Alan} chọn \text{stop} và cả hai huề (P[1] = 0). Về phần \text{Alan}, vì cũng đang chọn phương án tối ưu nên \text{Alan} cũng chọn \text{stop}, và cả hai huề ở trường hợp này. Suy ra E[1] = 0.
\text{Test #}3
\text{Input}
6
0 -1 1 1 -1 -1
0 1 A
1 2 A
1 3 B
2 4 B
2 5 B
3 6 A
\text{Output}
0 -1 1 1 -1 -1
\text{Explanations}

- Xét game-state \text{#}4, \text{#}5, \text{#}6: \text{Alan} sẽ có lợi thế ở game-state \text{#}4, còn \text{Bob} sẽ có lợi thế ở game-state \text{#}5 và \text{#}6. Suy ra, E[4] = 1, E[5] = E[6] = -1.
- Xét game-state \text{#}3: Ở đây, \text{Bob} chỉ được phép chọn \text{stop} và \text{Alan} được quyền ưu tiên. \text{Alan} sẽ chọn \text{stop} để đảm bảo lợi thế của anh ta (P[3] = 1), vì nếu chọn \text{continue} thì tình huống sẽ đến với game-state \text{#}6, cũng coi như là đưa lợi thế cho \text{Bob} (do E[6] = -1). Suy ra, P[3] = 1.
- Xét game-state \text{#}2: \text{Bob} được quyền ưu tiên, và \text{Alan} buộc phải chọn \text{stop}. Trong tình huống này, dù \text{Bob} có chọn gì thì kết quả đều thuận lợi cho \text{Bob}, nếu \text{Bob} chơi tối ưu (do \text{P[2] = -1} và nếu Bob thích chọn \text{continue}, chỉ cần đưa trò chươi đến với game-state \text{#}5 và Bob sẽ có lợi thế do E[5] = -1). Suy ra, P[2] = -1.
- Xét game-state \text{#}1: \text{Bob} được quyền ưu tiên. Tuy nhiên, nếu \text{Bob} chọn \text{continue} thì cách duy nhất để \text{Bob} tiếp tục tình huống là đưa tới game-state \text{#}3 và E[3] = 1, vì thế nên lựa chọn tốt nhất cho \text{Bob} là \text{stop}, vì \text{Bob} sẽ chắc chắn không thiệt với lựa chọn này (do nếu \text{Alan} chọn \text{continue}, \text{Bob} sẽ thắng tại game-state \text{#}2 và E[2] = -1, còn nếu chọn \text{stop} thì sẽ hòa do P[1] = 0). Tương tự, \text{Alan} biết rằng chọn \text{continue} cũng dẫn đến việc tình huống sẽ tiếp diễn tại game-state \text{#}2 mà E[2]=-1, nên \text{Alan} cũng sẽ chọn \text{stop}. Vậy là cả hai người quyết định \text{stop} và huề. Suy ra P[1] = 0.
TLEOJ Contest #14 - I Love You 3000
Bài này là dành cho những ai yêu thích con số 3000! Ờ ... nếu bạn thích bài hát có tên trùng với tên đề bài cũng được ... ;-; Bài đó hay mà nhỉ.
Also để mấy bạn reset lại não chút. Đề bài bài này ngắn thôi (totally không phải ko có ý tưởng viết đề).
Cho một bảng n \times m, các hàng được đánh số từ 1 đến n từ trên xuống dưới, các cột được đánh số từ 1 đến m từ trái sang phải. Ô ở hàng i và cột j (1 \le i \le n; 1 \le j \le m) có điền một số có một chữ số có giá trị là A[i][j];
Có một phương thức di chuyển trên bảng như sau: từ một ô (x; y), có thể di chuyển qua các ô (x - 1; y), (x + 1; y), (x; y - 1), (x; y + 1), miễn là nó nằm trong bảng.
Đếm số lượng bộ bốn điểm P_1 = (x_1; y_1), P_2 = (x_2; y_2), P_3 = (x_3; y_3), P_4 = (x_4; y_4) tồn tại một cách di chuyển lần lượt đi qua các điểm P_1, P_2, P_3, P_4 theo đúng thứ tự và thỏa mãn A[x_1 ][y_1] = 3 và A[x_i][y_i] = 0 với mọi i > 1.
\text{Input} ILU3K.inp
- Dòng một gồm hai số n, m (1 \le n, m \le 1000), thể hiện kích thước của bảng.
- n dòng sau, mỗi dòng thứ i gồm m chữ số, số thứ j thể hiện giá trị của A[i][j] (0 \le A[i][j] \le 9).
\text{Output} ILU3K.out
- Gồm một giá trị duy nhất là số lượng bộ bốn giá trị (x_1; y_1), (x_2; y_2), (x_3; y_3), (x_4; y_4) thỏa mãn đề.
\text{Scoring}
- Subtask \text{#}1 (30\% số điểm): n \le 10.
- Subtask \text{#}2 (70\% số điểm): Không có điều kiện gì thêm.
\text{Examples}
\text{Test #}1
\text{Input}
3 3
0 1 2
3 4 5
6 7 8
\text{Output}
0
\text{Test #}2
\text{Input}
7 7
1 2 7 0 1 2 7
4 5 0 0 0 4 5
6 0 0 0 0 0 6
0 0 0 3 0 0 0
1 0 0 0 0 0 1
2 7 0 0 0 2 7
4 5 6 0 4 5 6
\text{Output}
48
TLEOJ Contest #14 - Simulations
Một chiến dịch lớn giữa các sinh viên ưu tú nhất khoa Công nghệ thông tin của một trường nào đó đã được khởi động, với mục tiêu là dựng lên một chương trình giả tưởng, biểu diễn một lượng rất lớn các biến cố có thể xảy ra từ các dữ kiện ban đầu, nhờ vào công nghệ \text{AI}. Tuy nhiên, việc dựng mô hình này sẽ rất, rất, rất, rất bất tiện. Thế nên, các bạn trẻ của chúng ta đã dựng nên một mô hình để mô phỏng lại quá trình dựng nên cây sự kiện.
Ban đầu, khi bắt đầu thiết lập, cây giả tưởng này chỉ có một nút duy nhất và một hàng nút duy nhất. Nút duy nhất đó được đánh số là nút 1, ở hàng duy nhất được đánh số là 1.
Có một thao tác dựng cây có thể được sử dụng. Thao tác này yêu cầu hai số nguyên không âm a, b cho trước. Hai số này đảm bảo a + b > 1. Thao tác dựng cây như sau:
- Giả sử cây có tổng cộng r hàng nút trước khi gọi thao tác này. Gọi L=[L_1; L_2; L_3; ...; L_k] là số chỉ của các đỉnh ở hàng r. Hai số a và b này sẽ dựng các nút mới như sau:
- Với nút L_i (1 \le i \le k), sinh ra tổng cộng a + b nút mới làm con của nó. Giả sử cây hiện tại, lúc xét nút L_i và trước khi thêm đỉnh, có tổng cộng N nút. Các nút này sẽ lần lượt được đánh số từ N + 1 đến N + (a + b).
- Cũng tại bước sinh nút mới tại nút L_i đang xét, các nút đã được đánh số N + x, với 1 \le x \le a, cạnh nối giữa nút L_i và nút N + x được đánh dấu là cạnh \text{"A"} + \text{str}(x) của nút L_i. Tiếp theo, các nút đã được đánh số N + a + y, với 1 \le y \le b, có cạnh nối giữa nút L_i và nút N + y được đánh dấu là cạnh \text{"B"} + \text{str}(y) của nút L_i.
Ví dụ, nếu gọi hai bước sinh nút mới lần lượt với hai bộ số (a; b) là (3; 2) và (1; 1), ta có được cây sau:

Đôi khi, máy tính có thể gặp trục trắc, nên đôi khi thay vì sinh nút mới, máy tính sẽ kiểm tra bằng cách kiểm tra lại nút có chỉ số là X, bằng cách sử dụng các cạnh nào, để đi từ đỉnh của cây – nút 1 – đến với nút có chỉ số là X, để đảm bảo rằng tiến trình sinh cây được chính xác. Cụ thể, để đi tới nút số 10, trong ví dụ bên trên, ta sẽ từ nút 1, sử dụng cạnh \text{"A2"} của nút 1 để đi xuống nút 3; và từ nút 3, ta sẽ sử dụng cạnh \text{"B1"} của nút 3 để đi xuống nút 10. Chúng ta cần cho máy biết, các cạnh được sử dụng lần lượt là cạnh \text{"A2"} và cạnh \text{"B1"} (máy tính sẽ tự động biết cần dụng cạnh \text{"Ax"} , hoặc cạnh \text{"By"} của nút nào, nên việc thêm vào sử dụng cạnh đó của nút nào, trong trường hợp này, là không cần thiết).
Công trình được thiết lập cho một mục tiêu lớn hơn, nhưng trước hết thì đây là phiên bản thử nghiệm của công trình “Vẽ cây mô phỏng” lớn nhất từng được thực hiện. Hãy cùng thực hiện công tác thử nghiệm mô hình này nào.
Vì là mô hình thử nghiệm, nên trong suốt quá trình xử lí, tổng số nút mà máy tính cần phải xử lí sẽ không vượt quá 10^{18} nút.
\text{Input} SIMULS.inp
- Dòng một gồm một số q, thể hiện số lượng truy vấn (2 \le q \le 10^5);
- q dòng sau, mỗi dòng thể hiện một trong hai loại sau:
- 1 a b: Thể hiện truy vấn thêm nút trên cây. Đọc lại đề để biết thêm chi tiết (nếu bạn cố tình đọc lướt đến phần \text{Input} này để full nhanh đề).
- 2 X: Thể hiện truy vấn kiểm tra của máy tính. Nếu không biết, hãy đọc lại đề để biết thêm chi tiết (nếu bạn cố tình đọc lướt đến phần \text{Input} này để full nhanh đề). Biết rằng nếu gọi N là tổng số nút trên cây đã được sinh trước truy vấn này, \text{Input} được đảm bảo rằng X ≤ N.
- \text{Input} được đảm bảo rằng trong suốt quá trình xử lí, tổng số nút trên cây sẽ không vượt quá 10^{18} nút.
\text{Output} SIMULS.out
- Với truy vấn loại 2 X, in ra đáp án theo yêu cầu của đề theo dạng như sau:
- Ở hàng đầu tiên, in ra một giá trị p, thể hiện số cạnh cần sử dụng để đi từ nút 1 đến nút X.
- Ở hàng thứ hai, in ra p giá trị, thể hiện các cạnh cần sử dụng theo thứ tự để đi từ nút 1 đến nút X. Đọc lại đề nếu bạn vẫn ko biết cần in cái gì (còn in kiểu gì hãy đọc \text{Example Tests}). Nếu p = 0, không in ra gì cả.
\text{Scoring}
- Subtask \text{#}1 (20\% số điểm): Có đúng một truy vấn cập nhật cây, có \text{min}(a, b) = 0.
- Subtask \text{#}2 (20\% số điểm): N \le 2 * 10^5.
- Subtask \text{#}3 (20\% số điểm): q \le 2 * 10^4, trong đó các truy vấn cập nhật cây có a + b = 2.
- Subtask \text{#}4 (15\% số điểm): q \le 2 * 10^4.
- Subtask \text{#}5 (15\% số điểm): N \le 10^9.
- Subtask \text{#}6 (10\% số điểm): Không có giới hạn gì thêm.
\text{Examples}
\text{Test #}1
\text{Input}
4
1 1 1
1 1 1
2 2
2 3
\text{Output}
1
A1
1
B1
\text{Test #}2
\text{Input}
4
1 1 1
1 1 1
2 1
2 4
\text{Output}
0
2
A1 A1
\text{Test #}3
\text{Input}
9
1 1 1
1 1 1
2 1
2 2
2 3
2 4
2 5
2 6
2 7
\text{Output}
0
1
A1
1
B1
2
A1 A1
2
A1 B1
2
B1 A1
2
B1 B1
\text{Explanations}

Đây là cây của chúng ta sau khi sử dụng hai lệnh sinh nút 1 1 1 (với a = b = 1)
- Đối với nút 1, ta không cần di chuyển vì ta đã ở sẵn ở nút 1 ngay từ đầu truy vấn kiểm tra.
- Đối với nút 2, ta cần di chuyển trên cạnh \text{"A1"} của nút 1 để đến với nút 2.
- Đối với nút 3, ta cần di chuyển trên cạnh \text{"B1"} của nút 1 để đến với nút 3.
- Đối với nút 4, từ nút 1 ta cần di chuyển qua cạnh \text{"A1"} của nút 1 để đến với nút 2, và di chuyển qua cạnh \text{"A1"} của nút 2 để đến với nút 4.
- Đối với nút 5, từ nút 1 ta cần di chuyển qua cạnh \text{"A1"} của nút 1 để đến với nút 2, và di chuyển qua cạnh \text{"B1"} của nút 2 để đến với nút 5.
- Đối với nút 6, từ nút 1 ta cần di chuyển qua cạnh \text{"B1"} của nút 1 để đến với nút 3, và di chuyển qua cạnh \text{"A1"} của nút 3 để đến với nút 6.
- Đối với nút 7, từ nút 1 ta cần di chuyển qua cạnh \text{"B1"} của nút 1 để đến với nút 3, và di chuyển qua cạnh \text{"B1"} của nút 3 để đến với nút 7.
TLEOJ Contest #14 - Stupidly Large
Hình như đâu đấy có một khái niệm về một hội chứng “sợ từ ngữ dài”. Gọi là \text{hippopotomonstrosesquippedaliophobia}, đúng không nhỉ (lmao).
Và đây là một bài toán đặc biệt được viết ra dành cho những người mắc hội chứng này, vì kết quả của bài toán có thể lớn khủng khiếp, rất phù hợp.
Cho một số N và một số n (0 \le n \le 63; 0 \le N \le 2^{63} - 1). Tìm số nguyên X nhỏ nhất không nhỏ hơn N sao cho X có đúng n bit 1. Nếu không tồn tại số X thỏa mãn, in ra -1.
Kết quả được đảm bảo rằng trên trục số thực, X nằm trên đoạn số từ 0 đến +\infty và chỉ là một số nguyên.
\text{Input} XXXXL.inp
- Mỗi test bao gồm nhiều testcases. Dòng đầu gồm một số T (1 \le T \le 10^4), thể hiện số lượng testcases. Dưới đây là dữ liệu của T testcases, mỗi testcase có cấu trúc được trình bày như dưới đây.
- Dòng đầu của mỗi testcase có hai số n (0 \le n \le 63) và N (0 \le N \le 2^{63} - 1).
\text{Output} XXXXL.out
- Đối với mỗi testcase, in ra một giá trị là đáp án nhỏ nhất của X thỏa mãn X \ge N và trong biểu diễn nhị phân của X có đúng n bit 1.
- Nếu không tồn tại số X nào, in ra -1.
\text{Scoring}
- Subtask \text{#}1 (20\% số điểm): N có số lượng bit 1 không quá n.
- Subtask \text{#}2 (50\% số điểm): 1 \le n \le 30, 1 \le N \le 10^9.
- Subtask \text{#}3 (30\% số điểm): Không có điều kiện gì thêm.
\text{Examples}
\text{Test #}1
\text{Input}
2
5 12
1 6
\text{Output}
31
8
\text{Explanations}
Ở testcase \text{#}1, ta có biểu diễn nhị phân của số 31 là 11111_2, có 5 bit 1.
Ở testcase \text{#}2, ta có biểu diễn nhị phân của số 8 là 1000_2, có 1 bit 1.
TLEOJ Contest #14 - MEX Board
Cho một bảng n \times m, các hàng được đánh số từ 1 đến n từ trên xuống dưới, các cột được đánh số từ 1 đến m từ trái sang phải. Ô ở hàng i và cột j (1 \le i \le n; 1 \le j \le m) có điền một số có giá trị là A[i][j]; ban đầu thì với mọi i và j, A[i][j] = 0. Giá trị được đặt ở ô ở hàng i và cột j được thực hiện như sau, theo thứ tự từ trái sang phải và từ trên xuống dưới:
- Gọi S là tập hợp các giá trị được xuất hiện trong tất cả các ô ở hàng x và cột y thỏa mãn một trong hai điều kiện sau: Hoặc x = i và y < j; hoặc x < i và y = j.
- Tạo dãy S_2 mới sao cho mọi giá trị trong S_2 khác nhau đôi một và mọi giá trị trong S đều xuất hiện trong S_2.
- Giá trị tại ô ở hàng i và cột j (A[i][j]), sẽ là số nguyên không âm nhỏ nhất không xuất hiện trong S_2. Giả sử, nếu S_2 = [6; 9; 4; 2; 0], A[i][j] = 1 vì 1 là số nguyên không âm nhỏ nhất không tồn tại trong S_2. Nói một cách khác, A[i][j] = \text{MEX}(S_2).
Cho hai thao tác được phép sử dụng:
- Thao tác \text{#}1: Chọn một hàng i bất kì (1 \le i \le n). Trong số các ô ở hàng i, tráo đổi giá trị của ô ở cột thứ j (hay giá trị A[i][j]) với ô ở cột thứ m - j + 1 (hay giá trị A[i][m - j + 1]) với mọi số j nguyên dương thỏa 1 \le j < \frac{m + 1}{2}.
- Thao tác \text{#}2: Chọn một cột j bất kì (1 \le j \le m). Trong số các ô ở cột j, tráo đổi giá trị của ô ở hàng thứ i (hay giá trị A[i][j]) với ô ở hàng thứ n - j + 1 (hay giá trị A[n - i + 1][j]) với mọi số i nguyên dương thỏa 1 \le i < \frac{n + 1}{2}.
Hãy cho biết rằng nếu thực hiện hai thao tác trên một cách ngẫu nhiên, tại ô ở hàng thứ u và cột thứ v (1 \le u \le n; 1 \le v \le m), giá trị lớn nhất của ô đó có thể là bao nhiêu.
\text{Input} MEXS.inp
- Dòng đầu gồm ba số n, m (1 \le n, m \le 10^9) – thể hiện độ lớn của bảng, và q (1 \le q \le \text{min}(10^6, n * m)) – số lượng truy vấn.
- q dòng tiếp theo, mỗi dòng thứ i gồm hai số u_i, v_i (1 \le u_i \le n; 1 \le v_i \le m) – tọa độ của ô được đề cập trong truy vấn thứ i.
\text{Output} MEXS.out
- Với mỗi truy vấn, in ra một giá trị duy nhất là giá trị lớn nhất của ô tại hàng u_i và cột v_i.
\text{Scoring}
- Subtask \text{#}1 (20\% số điểm): 1 \le n, m \le 100.
- Subtask \text{#}2 (30\% số điểm): n = m = 2^k (k \in \mathbb{N}, k \le 10).
- Subtask \text{#}3 (50\% số điểm): Không có điều kiện gì thêm.
\text{Examples}
\text{Test #}1
\text{Input}
4 4 5
1 1
3 2
4 3
1 2
4 4
\text{Output}
3
3
2
2
3
\text{Explanations}
0 1 2 3
1 0 3 2
2 3 0 1
3 2 1 0
Đây là bảng được tạo ra với n = m = 4.
TLEOJ Contest #14 - Absolute Force
\text{In physics, specifically in electromagnetism, the Lorentz force (or electromagnetic force) is the combination of electric and magnetic force on a point charge due to electro-}
Nah, too complicated. We don't do electromagnetism here. Let us call our version of Lorentz force \text{Absolute Force}.
Bạn có n vị trí trên trục \text{Ox}, điểm thứ i có khoảng cách so với điểm 0 một khoảng x_i, và không hai vị trí nào trùng nhau. Bạn được cho một số m, hãy đặt m điện tích vào các vị trí đã cho, sao cho lực điện \text{Absolute Force} tạo ra từ m điện tích được đặt ở các vị trí bất kì được đánh dấu sẵn là lớn nhất.
Lực điện \text{Absolute Force} giữa hai điện tích ở hai vị trí lần lượt là x_1, x_2 được tính đơn giản bằng |x_1 - x_2|.
Lực điện \text{Absolute Force} của m điện tích lấy độ lớn lực điện \text{Absolute Force} nhỏ nhất giữa hai điện tích bất kì trong m điện tích cho trước làm giá trị của nó.
Giả dụ, với ba điện tích nằm ở ba điểm x = 2, x = 3, x = 5, thì lực điện \text{Absolute Force} nhận được sẽ là \text{min}(|3 - 2|, |5 - 3|, |5 - 2|) = 1.
Hãy tìm cách đặt m điện tích sao cho lực điện \text{Absolute Force} của m điện tích cho trước lớn nhất.
\text{Input} ABSF.inp
- Mỗi test bao gồm nhiều testcases. Dòng đầu gồm một số T (1 \le T \le 10^4), thể hiện số lượng testcases. Dưới đây là dữ liệu của T testcases, mỗi testcase có cấu trúc được trình bày như dưới đây.
- Dòng đầu của mỗi testcase có hai số n (2 \le n \le 5*10^4) - thể hiện số điểm được đánh dấu trên trục \text{Ox}, và m (2 \le m \le n) - thể hiện số lượng điện tích cần đặt vào vị trí được đánh dấu trên trục \text{Ox}.
- Dòng thứ hai của mỗi testcase có n số, số thứ i có giá trị là x_i (1 \le x_i \le 10^{18}), thể hiện vị trí được đánh dấu trên trục \text{Ox}. \text{Input} được đảm bảo rằng các giá trị x_i trong mỗi testcase khác nhau đôi một.
- Một điều kiện bổ sung cho \text{Input} là tổng các giá trị n trong các testcases không vượt quá 5*10^4.
\text{Output} ABSF.out
- Với mỗi testcase, in ra một giá trị duy nhất là độ lớn lớn nhất có thể của lực điện \text{Absolute Force} của m điện tích cho trước.
\text{Scoring}
- Subtask \text{#}1 (30\% số điểm): T = 10^4.
- Subtask \text{#}2 (70\% số điểm): Không có điều kiện gì thêm.
\text{Examples}
\text{Test #}1
\text{Input}
2
2 2
69 420
5 3
2 4 6 9 10
\text{Output}
351
4
\text{Explanations}
Ở testcase \text{#}1, vì n = m nên cách đặt duy nhất là đặt hai điện tích ở vị trí x = 69 và x = 420, và lực điện \text{Absolute Force} giữa hai điểm này là |420 - 69| = 351.
Ở testcase \text{#}2, cách đặt tốt nhất là đặt ba điện tích ở ba điểm x = 2, x = 6, và x = 10. Lúc này, các lực điện \text{Absolute Force} giữa các điện tích lúc đó là 4. Có thể chứng minh được không có cách đặt nào khác với lực điện \text{Absolute Force} giữa các điện tích lớn hơn 4.
TLEOJ Contest #15 - SUMLCM
Cho dãy số nguyên dương A=a_1,a_2,...,a_n. Hãy tính tổng bội chung nhỏ nhất của mọi cặp a_i,a_j thỏa mãn 1\le i<j\le n.
Input, Output và Subtasks
Input: (SUMLCM.INP)
- Dòng đầu tiên gồm 1 số nguyên dương n (1\le n\le 10^5).
- Dòng tiếp theo gồm n số nguyên dương a_1,a_2,...,a_n(1\le a_i\le 10^5).
Output: (SUMLCM.OUT)
- Gồm 1 số nguyên là đáp án của bài toán. Kết quả có thể rất lớn nên hãy chia lấy dư cho 998244353.
Subtasks
- Subtask 1: Đảm bảo n\le 5000. (20% số điểm)
- Subtask 2: Đảm bảo a_i chia hết cho a_{i-1} với i>1. (30% số điểm)
- Subtask 3: Không có ràng buộc gì thêm. (50% số điểm)
Sample
Input (SUMLCM.INP)
3
2 3 4
Output (SUMLCM.OUT)
22
TLEOJ Contest #15 - F-Function
Ta định nghĩa một hàm F(n,k) với 1\le k\le n, và n,k \in N như sau:
- Nếu k=1 thì F(n,k)=1.
- Ngược lại F(n,k)=\Sigma_{i=0}^{n}C_n^iF(n-i,k-1).
Yêu cầu: Cho biết n và k, hãy tính F(n,k).
Input, Output và Subtasks
Input: (bàn phím)
- Dòng đầu tiên gồm 2 số nguyên dương n,k (1\le k\le n\le 10^{18}).
Output: (màn hình)
- In ra theo yêu cầu, có thể đáp án rất lớn nên hãy in F(n,k) sau khi chia lấy dư cho 10^9+7.
Subtasks
- Subtask 1: 20% số điểm có n\le 10.
- Subtask 2: 40% số điểm có n\le 2.10^2
- Subtask 3: còn lại không có giới hạn gì thêm.
Sample
Input (bàn phím)
3 2
Output (màn hình)
8