TLEoj Contest #03 - Mảng xor
Bạn được cho một dãy số a gồm n phần tử. Dãy số b được tạo bằng cách như sau:
- b_1=a_1\oplus a_2
- b_2=a_2\oplus a_3
- b_3=a_3\oplus a_4
- \dots
- b_{n-1}=a_{n-1}\oplus a_n
- b_n=a_n\oplus a_1
Trong đó, \oplus là thao tác bit XOR. Bạn có thể đọc tại đây
Bạn được cho dãy số b, nhiệm vụ của bạn là tìm một dãy số a thỏa mãn điều kiện sao cho thứ tự từ điển của dãy là nhỏ nhất.
Một dãy số a được coi là có thứ tự từ điển nhỏ hơn dãy số b khi tồn tại vị trí i mà:
- Với mọi vị trí j<i thì a_j=b_j
- a_i<b_i
Input, Output và Subtasks
Input
- Dòng thứ nhất gồm 1 số t là số testcase (1\le t\le 10^4)
- Sau đó là t block được định dạng như sau:
- Dòng đầu tiên gồm 1 số n (2\le n\le 10^5)
- Dòng tiếp theo gồm n số b_1,b_2,\dots,b_n (0\le b_i<2^{30})
- Dữ liệu đảm bảo tổng n trong tất cả testcase không quá 2\times 10^5
Output
- Xuất ra t dòng được định dạng như sau:
- Nếu không có dãy thỏa mãn, xuất
-1 - Ngược lại, xuất ra dãy a thỏa mãn có thứ tự từ điển nhỏ nhất, các giá trị được cách nhau bởi 1 dấu cách
- Nếu không có dãy thỏa mãn, xuất
Sample
Input
3
3
1 2 3
3
1 0 0
10
3 6 4 5 2 4 5 14 1 8
Output
0 1 3
-1
0 3 5 1 4 6 2 7 9 8
TLEoj Contest #07 - Knapsack đơn giản
Chắc hẳn các bạn đã biết về bài toán cái túi, hay knapsack. Bài toán này là một phiên bản khác của bài toán cái túi.
Có n món đồ, món đồ thứ i có cân nặng a_i. An chọn một số món đồ sao cho tổng cân nặng của chúng đúng bằng m và muốn biết rằng có bao nhiêu cách chọn đồ như vậy. Một món đồ có thể chọn 0 lần, 1 lần hoặc nhiều hơn 1 lần, hai cách chọn được gọi là khác nhau nếu có một món đồ chọn nhiều hoặc ít hơn cách chọn kia. Hãy giúp bạn An đếm nhé
Input, Output và Subtasks
Input: (standard input)
- Dòng đầu gồm hai số nguyên dương n và m (1\leq n\leq 10).
- Dòng tiếp theo gồm n số nguyên dương a_1,a_2,...,a_n (1\leq a_i\leq 20).
Output: (standard output)
- In ra một số là số cách chọn mod 10^9+7.
Subtasks
- Subtask 1 (40\%): m\leq 2000
- Subtask 2 (20\%): n=2, m\leq 10^{18}
- Subtask 3 (40\%): m\leq 10^{18}
Sample
Input (standard input)
3 4
1 2 3
Output (standard output)
4
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.
Bedan Contest #04 - A - Trò chơi
Nên nhớ là có đọc tên file đấy đồ ngốc.
Chỉ còn vài ngày nữa là Tết năm 2024 này sẽ đến. Người người nhà nhà đều háo hức chờ đợi và của chúng ta cũng vậy. Hôm nay là ngày cuối cùng đi học trước khi kì nghỉ Tết bắt đầu và vô cùng vui sướng. Nghỉ tới lúc mình được ngủ nướng thật đã, đi chơi với gia đình và bạn bè, ăn những món ăn ngon miệng, ... thì lại càng mong muốn Tết đến thật nhanh. Và trước khi nó bắt đầu, cùng với bạn của cậu là ngvanminh_ sẽ cùng nhau chơi một thứ gì đó trước khi xa nhau nhiều ngày. Vậy là nghĩ ra trò chơi sau.
- sẽ chọn 2 số nguyên dương n, k bất kỳ.
- Tại mỗi thao tác, ngvanminh_ có thể chọn 1 số nguyên tố p và nhân nó với n (nghĩa là n = n\times p).
- Trò chơi cứ tiếp diễn như vậy cho đến khi \sqrt[k]{n} là một số nguyên.
Trò chơi có vẻ khá thú vị nên và ngvanminh_ quyết định sẽ cùng nhau chơi t lần và mỗi lần chơi, cả 2 sẽ chơi sao cho số lượng thao tác là ít nhất có thể. Tuy nhiên, cả 2 lại không biết chơi như thế nào để tối ưu. Bạn hãy tính giúp và ngvanminh_ nhé.
Input, Output and Scoring
Input (game.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 n, k (2 \le n, k \le 10^9).
Output (game.out)
- Với mỗi dòng, hãy in ra kết quả thỏa mãn.
Scoring
- Subtask 1 (20\%): t = 1.
- Subtask 2 (40\%): 1 \le n, k \le 10^6.
- Subtask 3 (40\%): Không giới hạn gì thêm.
Test
Input (game.inp)
3
8 3
12 2
18 4
Output (game.out)
0
1
5
Note
- Ở lần chơi thứ 1, \sqrt[3]{8} đã là một số nguyên nên ta không cần thực hiện thao tác nào.
- Ở lần chơi thứ 2, ta có thể nhân 3 vào n để có n = 36. Khi đó số lượng thao tác là 1, có thể thấy đây là cách thực hiện ít thao tác nhất.
Khuyến mãi (Lào Cai 2025)
Đề 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
TLEoj Contest #03 - Phép xor
Bạn được cho một số nguyên dương n<2^{20}. Nhiệm vụ của bạn là tìm ba số nguyên dương x,y,z<2^{20} bất kỳ sao cho x\oplus y\oplus z=0 và x,y,z chia hết cho n, hoặc in ra ba số -1 nếu không có phương án.
Input, Output và Subtasks
Input
- Dòng đầu tiên gồm một số nguyên dương t\le 100 là số truy vấn.
- t dòng tiếp theo, mỗi dòng là một truy vấn, gồm một số nguyên dương n<2^{20}
Output
- Gồm t dòng, ở dòng thứ i nếu tồn tại phương án thì in ra một phương án bất kỳ. Trong trường hợp ngược lại in ra
-1 -1 -1(ba số-1cách nhau một dấu cách)
Scoring
- Subtask 1 (40\%): n<1024
- Subtask 2 (40\%): n\ge 1024
- Subtask 3 (20\%): Không có ràng buộc gì thêm
Sample
Input
1
5
Output
80 90 10
Python Basic Contest #01 - Tổng các tích (Python only)
Bạn được cho một dãy số nguyên dương a_1, a_2, ..., a_n. Bạn hãy tính tổng các tích của các dãy con liên tiếp khác rỗng của dãy số trên, hay nói cách khác, hãy tính tổng các giá trị a_l \times a_{l + 1} \times ... \times a_r với mọi 1 \le l \le r \le n.
Input, Output và Subtask
Input (bàn phím)
- Dòng đầu tiên gồm số nguyên dương n (n \le 10^5).
- Dòng tiếp theo gồm n số nguyên dương a_i (a_i \le 10^9).
Output (màn hình)
- Một dòng duy nhất là kết quả bài toán. Vì kết quả có thể rất lớn nên bạn chỉ cần in ra phần dư của nó khi chia cho 10^9 + 7.
Subtask
| Tỉ lệ điểm (%) | Giới hạn |
|---|---|
| 40 | n \le 10^2 |
| 40 | n \le 10^3 |
| 20 | n \le 10^5 |
Sample 1
Input (bàn phím)
3
1 2 3
Output (màn hình)
20
Notes
- Kết quả của bài toán là 1 + 2 + 3 + 1 \times 2 + 2 \times 3 + 1 \times 2 \times 3 = 20.
Sample 2
Input (bàn phím)
5
1 2 3 4 5
Output (màn hình)
409
TLEoj Contest #03 - Olimpit Tam quốc
Từ xa xưa, ba nước: TLE, VNOI, CF vẫn luôn phân vân và muốn biết xem nước nào là nước mạnh nhất về thể thao. Vì thế cả 3 nước đã quyết định tạo ra một thế vận hội “Olimpit Tam quốc” nhằm tìm ra xem nước nào là nước mạnh nhất. Cho đến ngày hôm nay, thế vận hội đã diễn ra được t năm. Trong mỗi năm, các sự kiện sẽ được biểu diễn bởi một xâu s chỉ gồm 3 ký tự là T,V,C. Trong đó, mỗi ký tự T tương ứng với việc nước TLE được thêm 1 điểm, V tương ứng với VNOI và C tương ứng với CF. Đến cuối năm, nước nào được nhiều điểm nhất sẽ là nước vô địch năm đó (nếu có nhiều nước cùng nhiều điểm nhất thì ưu tiên theo thứ tự TLE > VNOI > CF)
Qua t năm, ba nước muốn thống kê lại số lần vô địch của mỗi nước. Với trách nghiệm là 1 sứ giả, nhiệm vụ của bạn là đếm số lần vô địch của mỗi nước sau t năm.
Input, Output và Subtasks
Input
- Dòng thứ nhất gồm 1 số nguyên dương t là số năm (1\le t\le 10^3)
- T dòng tiếp theo, dòng thứ i gồm 1 chuỗi s có các chữ cái
T,V,Cbiểu thị các sự kiện trong năm thứ i (1\le |s|\le 10^3, trong đó |s| là độ dài của chuỗi s)
Output
- Xuất ra 3 số trên 1 dòng cho biết số lần vô địch của các nước. Trong đó số thứ nhất là tương ứng với nước TLE, số thứ hai tương ứng với VNOI và số thứ ba tương ứng với CF
Sample
Input
3
TCTVVCTTTVCT
TTVVCC
TCVCVCV
Output
2 1 0
Note
- Năm đầu tiên, quốc gia TLE giành được 6 điểm, quốc gia VNOI giành được 3 điểm và quốc gia CF cũng giành được 3 điểm. Quốc gia TLE vô địch lần đầu tiên.
- Năm thứ hai, mỗi quốc gia đạt được 2 điểm, nhưng theo luật ưu tiên, quốc gia TLE vô địch.
- Năm thứ ba, quốc gia TLE giành được 1 điểm, quốc gia VNOI giành được 3 điểm và quốc gia CF cũng giành được 3 điểm. Nhưng theo luật ưu tiên, quốc gia VNOI vô địch
- Sau 3 năm, quốc gia TLE vô địch 2 lần, quốc gia VNOI vô địch 1 lần và CF không vô địch lần nào :(
TLEoj Contest #04 - Sqrt++
Sqrt, sqrt, sqrt!
Ban đầu bạn có một số x=1. Mỗi lần bạn tăng x lên \left \lfloor \sqrt x \right \rfloor. Trong đó \left \lfloor x \right \rfloor là phép làm tròn xuống. Ví dụ: \left \lfloor 5.2 \right \rfloor=5,\left \lfloor 6.9 \right \rfloor=6
Nhiệm vụ của bạn là kiểm tra xem sau k bước, giá trị x bằng bao nhiêu.
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 k (1\le k\le 10^9)
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 (50\%): k\le 10^6
- Subtask 2 (50\%): Không có ràng buộc gì thêm
Sample
Input
10
1
2
3
4
5
6
7
8
9
10
Output
2
3
4
6
8
10
13
16
20
24
TLEoj Contest #02 - Mon đi PQ
"Trong một thế giới ảo tưởng của mondellbit009"
mondellbit009 sau khi bị mẹ ép đi PQ chơi, mẹ cho mondellbit009 n đồng để đi du lịch. Khi chuẩn bị đi du lịch thì mondellbit009 có thể đặt vé theo 4 cách như sau:
- Sử dụng A đồng cho vé đi tàu 1 lần
- Sử dụng B đồng cho vé đi tàu 1 tuần
- Sử dụng C đồng cho vé đi taxi 1 lần
- Sử dụng D đồng cho vé đi taxi 1 tuần
mondellbit009 đang phân vân không biết nên mua 1 vé tàu và 1 vé taxi như thế nào để vừa với túi tiền của mình. Các bạn hãy giúp mondellbit009 nhé!
Input, Output và Subtasks
Input
- Dòng thứ nhất gồm 1 số t là số testcase (1\le t\le 10^4)
- Sau đó là t dòng, mỗi dòng gồm 5 số n,A,B,C,D tương ứng với các giá trị trong từng testcase (1\le n,A,B,C,D\le 10^9)
Output
- Xuất ra t dòng tương ứng với kết quả từng testcase:
- Nếu có thể mua vé, hãy xuất ra 1 giá trị là tổng chi phí nhỏ nhất để mua vé
- Ngược lại, hãy xuất
-1
Sample
Input
3
4 2 2 2 2
2 2 2 2 2
4 1 2 2 1
Output
4
-1
2
Note
Trong testcase 1, Mon có thể mua 1 trong 2 vé đi tàu và 1 trong 2 vé đi taxi. Với cách chọn nào cũng sẽ tốn tổng chi phí là 2+2=4
Trong testcase 2, Mon có thể tốn chi phí tối thiểu là 4 nhưng Mon chỉ có 2 đồng nên kết quả là -1 ;(
Trong testcase 3, Mon có thể chọn vé đi tàu 1 lần và vé đi taxi 1 tuần để được chi phí là 1+1=2
TLEoj Contest #06 - Bộ ba tổng
Một bộ ba (i, j, k) được gọi là bộ ba thành tổng nếu nó thỏa mãn:
- 1 \le i, j, k \le n.
- i+j+k = m.
Cho hai số nguyên dương n, m, hãy in ra số lượng bộ ba (i, j, k) là bộ ba thành tổng.
Input, Output and Scoring
Input
- Dòng đầu bao gồm 1 số t là số testcase (1\le t\le 10)
- Sau đó là t dòng, mỗi dòng gồm 2 số nguyên dương n, m (1 \le n \le 2 \times 10^6; 1 \le m \le 3 \times n).
Output
- Với mỗi testcase, in ra kết quả tương ứng trên 1 dòng.
Scoring
- Subtask 1 (20\%): 1 \le n \le 2 \times 10^2.
- Subtask 2 (30\%): 1 \le n \le 2 \times 10^3.
- Subtask 3 (50\%): Không giới hạn gì thêm.
Example
Input
3
5 1
2 6
3 7
Output
0
1
6
Note
- Trong testcase 1, ta dễ dàng nhận thấy không có bộ ba nào thỏa mãn
- Trong testcase 2, chỉ có 1 bộ ba thỏa mãn là (2,2,2).
- Trong testcase 3, có 6 bộ ba thỏa mãn là (1, 3, 3), (2, 2, 3), (2, 3, 2), (3, 1, 3), (3, 2, 2) và (3, 3, 1).
Phần thưởng (TS10 TH 2023)
Lam là học sinh có thành tích cao trong kỳ thi tuyển sinh vào lớp 10 chuyên Tin. Phần thưởng cho em là một phần mềm diệt virus. Mã số của phần mềm là một dãy gồm n số nguyên dương a_1,a_2,\dots,a_n. Để cài đặt được phần mềm, Lam phải nhập vào mật khẩu của phần mềm. Mật khẩu là số lượng các số chia hết cho 90 của dãy số trên.
Yêu cầu: Hãy tìm mật khẩu để cài đặt phần mềm
Input, Output và Subtasks
Input: (CAU1.INP)
- Dòng đầu là một số nguyên dương n (1\le n\le 1000)
- n dòng sau, dòng thứ i ghi số nguyên dương a_i (0<a_i\le 10^{1000})
Output: (CAU1.OUT)
- Duy nhất một số là mật khẩu tìm được
Subtasks
- Subtask 1 (85\%): n\le 100,a_i\le 10^9
- Subtask 2 (15\%): Không có ràng buộc gì thêm
Sample
Input (CAU1.INP)
4
90
10
90
27052023
Output (CAU1.OUT)
2
Sample
Input (CAU1.INP)
1
9
Output (CAU1.OUT)
0
Dập núi (TP Hồ Chí Minh 2025)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
DAPNUI.INP - Tệp ra:
DAPNUI.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
Tính tổng (Lâm Đồng 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
ĐÈN CHIẾU SÁNG CÔNG CỘNG (Nghệ An 2024)
Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.
- Tệp vào:
CHIEUSANG.INP - Tệp ra:
CHIEUSANG.OUT - Thời gian chạy:
1.0s - Bộ nhớ:
1024MB
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 Cup Final Day 2 - Tráo bài
muốn tặng cho một món quà đặc biệt nhân ngày sinh nhật của bạn ấy, ngày 10 tháng 1 năm 2024. Vì không nghĩ ra được món quà nào đặc sắc nên chỉ đành tặng một chồng bài gồm n là bài được đánh số từ 1 đến n theo thứ tự từ trên xuống dưới. Vì món quà chưa đủ ấn tượng, quyết định mời giúp mình thực hiện một thử thách. sẽ thực hiện q lần tráo bài, mỗi lần cô sẽ rút c_i các lá bài có thứ tự từ l_i đến l_i + c_i - 1 từ trên xuống dưới và chèn chồng bài vào trên lá bài thứ k_i trong số các lá bài còn lại (nếu k_i = n - c_i + 1 thì chồng bài sẽ được chèn vào dưới những lá bài còn lại). muốn xác định t lá bài đầu tiên của chồng bài sau khi xáo.
Input, Output và Subtask
Input (SHUF.inp)
- Dòng đầu tiên gồm ba số nguyên dương n, t, q (n, q \le 10^5, t \le n).
- q dòng tiếp theo, dòng thứ i gồm ba số nguyên dương l_i, c_i, k_i (l_i + c_i - 1 \le n, k_i \le n - c_i + 1)
Output (SHUF.out)
- Một dòng gồm t số nguyên dương là số ghi trên t lá bài đầu tiên sau khi tráo.
Subtask
- Subtask 1 (30\%): n, q \le 5000.
- Subtask 2 (40\%): t \le \min(n, 50).
- Subtask 3 (30\%): Không có giới hạn gì thêm.
Sample 1
Input (SHUF.inp)
5 5 2
3 2 2
3 3 1
Output (SHUF.out)
4 2 5 1 3
Notes
(1, 2, 3, 4, 5) \rightarrow (1, 3, 4, 2, 5) \rightarrow (4, 2, 5, 1, 3)