Candy (Đắk Nông 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CANDY.INP - Tệp ra:
CANDY.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
TLE Speedrun - Tổng
Input và Output
Input
- Dòng đầu tiên gồm một số nguyên dương N (1 \le N \le 10^5).
- Dòng tiếp theo gồm N số nguyên A_1, A_2, ..., A_N (|A_i| \le 10^9).
Output
- Số cặp số nguyên 1 \le i < j \le N mà A_i + A_j \neq 0.
Sample
Input
3
1 0 -1
Output
2
Cặp số đối nhau (HSG CLQĐ NT 2024)
Cho dãy số nguyên a_1, a_2, ..., a_n. Hãy cho biết có bao nhiêu cặp chỉ số (i, j) trong đó i < j thỏa mãn a_i = -a_j.
Input and Output
Input (NEGPAIRS.INP)
- Dòng đầu tiên là một số nguyên dương n (1 \le n \le 10^5).
- Dòng thứ hai chứa n số nguyên a_1, a_2, ..., a_n (|a_i| \le 100) cách nhau bởi dấu cách.
Output (NEGPAIRS.OUT)
- In ra một số nguyên duy nhất là số cặp (i, j) thỏa mãn yêu cầu đề bài.
Test 1
Input (NEGPAIRS.INP)
9
-3 -2 -1 0 9 0 1 2 3
Output (NEGPAIRS.OUT)
4
Test 2
Input (NEGPAIRS.INP)
4
0 0 0 0
Output (NEGPAIRS.OUT)
6
Dãy dài nhất (PTNK 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
MARBLE.INP - Tệp ra:
MARBLE.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Chia đất (Quảng Trị 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CAU2.INP - Tệp ra:
CAU2.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Thừa số nguyên tố (Huế 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
TSNT.INP - Tệp ra:
TSNT.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Tính tổng (Phú Thọ 2023)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CAU1.INP - Tệp ra:
CAU1.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
PHÂN TÍCH SỐ (6 điểm) (Kiên Giang 2023)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
PTICHSO.INP - Tệp ra:
PTICHSO.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Số lớn nhất (Ninh Bình 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
MAXS.INP - Tệp ra:
MAXS.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
TLEoj Contest #08 - Trò chơi với đá
Ở thành phố XYZ, ai ai cũng đều biết tới với khả năng "chơi đá" thần sầu của anh khiến tất cả đều ngưỡng mộ. Tuy nhiên, riêng chỉ có bạn là không tin tưởng vào tài năng đó của , vì vậy cậu ấy quyết định sẽ thách đấu bạn bằng một trò chơi nho nhỏ.
Trò chơi được thực hiện trên một sân đấu được chia thành 10^6 vị trí được đánh số từ 1 đến 10^6. có một số viên đá, cậu ấy xếp chúng vào n vị trí từ 1 đến n, vị trí thứ i có a_i viên đá. Bạn được thực hiện không quá 10^6 thao tác sau:
- Chọn 3 vị trí i,j,k phân biệt có giá trị không quá 10^6 sao cho vị trí i và j chứa ít nhất một viên đá.
- Lấy hai viên đá từ hai vị trí thứ i, j, mỗi vị trí một viên đá, rồi chuyển chúng sang vị trí thứ k.
Mục tiêu của trò chơi là chuyển hết tất cả các viên đá về một vị trí duy nhất (vị trí kết thúc không quan trọng). đã dễ dàng dành chiến thắng trong trò chơi này, thậm chí không cần dùng đến các vị trí lớn hơn ns, còn bạn?
Input, Output và Subtasks
Input
-
Dòng đầu tiên chứa số nguyên dương n là số lượng vị trí được đặt đá (4 \leq n \leq 10^5)
-
Dòng thứ hai chứa n số nguyên dương a_1, a_2, \ldots, a_n tương ứng là số viên đá ở vị trí thứ 1,2,\ldots,n (1 \leq a_i \leq 10^5)
Dữ liệu đảm bảo a_1 + a_2 + \ldots + a_n \leq 2 \times 10^5
Output
-
Dòng đầu tiên cần chứa số nguyên không âm c là số lượng thao tác bạn sẽ thực hiện (0 \leq c \leq 10^6). Lưu ý rằng bạn không cần tối thiểu hóa số thao tác bạn thực hiện.
-
c dòng tiếp theo, mỗi dòng cần chứa 3 số nguyên dương phân biệt i,j,k là các vị trí bạn sẽ thực hiện thao tác (1 \leq i,j,k \leq 10^6)
-
Nếu bạn không thể dành chiến thắng trong trò chơi của , in ra một dòng duy nhất chứa số
-1
Subtasks
-
Subtask 1 (20\% số điểm): a_i \leq 2 với mọi i
-
Subtask 2 (80\% số điểm): Không có ràng buộc gì thêm.
Với mỗi test:
- Bạn sẽ được tính 25\% số điểm của test đó nếu bạn sử dụng không quá 10^6 vị trí.
- Bạn sẽ được tính 100\% số điểm của test đó nếu bạn sử dụng không quá n vị trí.
Sample
Sample Input
4
1 2 3 1
Sample output
2
1 2 3
2 4 3
Note
- Ban đầu, số lượng đá ở từng chồng là: 1,2,3,1
- Ở bước 1, bạn chuyển 1 viên từ chồng 1 và 1 viên từ chồng 2 sang chồng thứ 3. Số lượng đá ở từng chồng lúc này là: 0,1, 5,1
- Ở bước 2, bạn chuyển 1 viên từ chồng 2 và 1 viên từ chồng 4 sang chồng thứ 3. Số lượng đá ở từng chồng lúc này là: 0,0, 7,0
- Bạn giành chiến thắng trò chơi vì đã đưa hết các viên đá vào chồng thứ 3. Bạn được 100\% số điểm của test vì không dùng tới bất kỳ vị trí nào lớn hơn 4.
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.
TỆP TIN (Đắk Nông 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
FILEDEL.INP - Tệp ra:
FILEDEL.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Cặp số tương đồng (Lào Cai 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CAU3.INP - Tệp ra:
CAU3.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB