Tích lớn nhất (Bến Tre 2025)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: TICH.INP
  • Tệp ra: TICH.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

TỔNG NHỎ NHẤT (Nghệ An 2024)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: TONGNN.INP
  • Tệp ra: TONGNN.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Bảng số (Cần Thơ 2024)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: BANGSO.INP
  • Tệp ra: BANGSO.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Đếm ước (Hà Tĩnh 2025)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: COUNT.INP
  • Tệp ra: COUNT.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

TLEoj Contest #03 - Mảng xor

huyhau6a2

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

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

Số chính phương nhỏ nhất (Kon Tum 2024)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: CPNN.INP
  • Tệp ra: CPNN.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Chọn số (Kon Tum 2024)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: CHONSO.INP
  • Tệp ra: CHONSO.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Bedan Contest #04 - C - Tiền lì xì

flo

Nên nhớ là có đọc tên file đấy

Trong những ngày Tết, tiền lì xì là một thứ không thể thiếu đối với những bạn nhỏ và hầu như bạn nào cũng thích. Mặc dù đã ăn 14 nồi bánh chưng nhưng mỗi khi Tết đến, flo lại vô cùng háo hức khi được nhận tiền lì xì và năm nay cũng như vậy.

Hôm nay, flo đến nhà của bác mình là huyhau6a2 để chơi. Nhắc tới huyhau6a2, mọi người đều biết đến bác là một người siêu giàu khi sở hữu 69 căn biệt thự siêu to khổng lồ và 420 món đồ mua từ shop Thái Công. Thấy người cháu của mình đến chơi, bác huyhau6a2 liền đem ra cho flo n phong bì lì xì với phong bì thứ i sẽ có a_i đồng. Để thêm phần thử thách, bác huyhau6a2 muốn flo chia n phong bì trên thành k dãy phong bì liên tiếp khác nhau. Khi số, số tiền lì xì flo nhận được sẽ là tích của tổng từng dãy phong bì trong k dãy trên.

Nhận thấy đây là cơ hội làm giàu, flo quyết định chấp nhận thử thách của bác huyhau6a2 đặt ra. Tuy nhiên, cậu không biết phải chia n phong bì trên như thế nào để số tiền cậu nhận được là lớn nhất có thể. Bạn hãy tính giúp flo nhé.

Lưu ý rằng trong mỗi cách chia, mỗi phong bì chỉ được thuộc duy nhất 1 dãy phong bì lì xì.

Input, Output and Scoring

Input (lixi.inp)
  • 2 số nguyên dương n, k (1 \le k \le n \le 200).
  • Dãy a gồm n phần tử a_1, a_2, ..., a_n (1 \le a_i \le n).
Output (lixi.out)
  • In ra k dòng, dòng thứ i là 1 cặp số (l, r) nghĩa là dãy phong bì thứ i sẽ chứa các phong bì từ vị trí l đến r.
  • Nếu có nhiều cách chia có cùng số tiền lớn nhất, hãy in ra một cách chia bất kỳ.
Scoring
  • Subtask 1 (10\%): k = 2.
  • Subtask 2 (30\%): 1 \le k \le n \le 20.
  • Subtask 3 (60\%): Không giới hạn gì thêm.

Test 1

Input (lixi.inp)
5 3
2 3 1 4 2     
Output (lixi.out)
1 2
3 4
5 5
Note
  • Khi chia như trên, flo sẽ nhận được số tiền lì xì lớn nhất là 50.

Test 2

Input (lixi.inp)
3 2
1 1 1    
Output (lixi.out)
1 2
3 3
Note
  • Cách chia (1, 1) và (2, 3) cũng sẽ nhận được số tiền lì xì là 2 như trên.

Tặng quà (Kiên Giang 2025)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: stdin
  • Tệp ra: stdout
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

So sánh xâu con

Sunlight

Cho hai xâu a và b. Xét một đa tập S gồm tất cả các xâu con liên tiếp khác rỗng của a (mỗi xâu có thể xuất hiện nhiều lần, ví dụ với a = aa thì S=\{a, a, aa\}) và đa tập T gồm tất cả các xâu con của b. Lần lượt so sánh các phần tử của đa tập S và đa tập T và đếm số kết quả (>, <, =) thu được.

Ví dụ với a=ab, b=ba, ta có S=\{a, b, ab\} và T=\{b, a, ba\}. Dễ thấy có hai phép so sánh trả về kết quả = là a=a và b=b, hai phép so sánh cho kết quả > là ab>a và b>a và 5 phép so sánh cho kết quả <.

Input

  • Một dòng duy nhất gồm hai xâu a và b chỉ gồm các chữ cái trong bảng chữ cái tiếng Anh viết thường.

Output

  • Một dòng gồm 3 số nguyên dương lần lượt là số phép so sánh trả về kết quả <, kết quả = và kết quả >.

Subtasks: (với |s| là độ dài của xâu s, đảm bảo |a|, |b| \le 10000)

  • 10\% số điểm có |a|, |b| \le 50.
  • 15\% số điểm khác có |a|, |b| \le 100.
  • 15\% số điểm khác có |a|, |b| \le 500.
  • 20\% số điểm khác có |a|, |b| \le 2000.
  • 25\% số điểm khác có |a|, |b| \le 4000.
  • 15\% số điểm còn lại không có giới hạn gì thêm.
Sample
Input
ab ba
Output
5 2 2
Notes

Giải thích trên đề bài.

TỔNG CÁC CHỮ SỐ (Hải Dương 2024)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: stdin
  • Tệp ra: stdout
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

TLEOJ Contest #10 - Nước Cam

icebearlovecode

Sau khi đá bóng, chinhoangmanutd đã rất khát nước. Sau đó anh ấy đi đến quầy nước cam với t đồng trong người.

Tại quầy bán nước cam, có 2 loại chai:

  • Chai nhựa với mức giá là x
  • Chai thủy tinh với mức giá là y
  • Vì chai thủy tinh có thể tái chế được nên là có thể bán lại cho quán với mức giá là z

Nhiệm vụ của bạn là tính số chai lớn nhất mà chinhoangmanutd có thể mua với t đồng trên. Và bạn sẽ phải xử lí q trường hợp như vậy.

Input, Output và Subtask

Input

  • Dòng đầu tiên số nguyên dương q (1\le q\le10^5)
  • Gồm q dòng có các số nguyên t,x,y,z (1\le t,x,z,y\le 10^9;z<y)

Output

  • Xuất ra q dòng, mỗi dòng gồm duy nhất 1 số là số chai lớn nhất mua được.

Subtask

  • Subtask 1 (20\% số điểm): q\le 100;1\le t,x,y,z\le 1000.
  • Subtask 2 (30\% số điểm): q\le 1000;1\le t,x,y,z\le 10^6.
  • Subtask 3 (50\% số điểm): Không có giới hạn gì thêm

Example

Test 1

Input
1
30 6 10 8
Output
12

Máy quét số (Hà Nội (ĐHSP) 2025)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: stdin
  • Tệp ra: stdout
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Rút tiền (THTB ĐN 2023)

Sunlight

An có rất nhiều tiền trong ngân hàng Thụy sĩ, một hôm An cần rút một số tiền n (n\le 10^5), ngân hàng chỉ có k (k\le 10^3) loại mệnh giá lần lượt là a_1,a_2,\dots,a_k. Vì lý do đặc biệt nên An mong muốn số tờ tiền rút được là ít nhất.

Input, Output và Subtasks

Input: (TIEN.inp)
  • Dòng đầu tiên chứa 2 số nguyên dương n và k, trong đó n là số tiền cần rút, k là số loại tiền mệnh giá
  • Dòng thứ hai chứa k số nguyên dương a_1,a_2,\dots,a_k lần lượt là mệnh giá của các tờ tiền
Output: (TIEN.out)
  • Chứa một số nguyên dương duy nhất là số tiền ít nhất mà An rút được, nếu không thể in ra -1
Subtasks
  • Subtask 1 (20\%): k=2 và a_i khác nhau đôi một
  • Subtask 2 (30\%): k\le 10, n\le 100 và a_i khác nhau đôi một
  • Subtask 3 (50\%): Không có ràng buộc gì thêm

Sample 1

Input (TIEN.inp)
125 6
1 2 5 10 20 50
Output (TIEN.out)
4
Note

Số tờ tiền ít nhất có thể lấy là 4 tờ gồm 2 tờ mệnh giá 50, 1 tờ mệnh giá 20, 1 tờ mệnh giá 5

Sample 2

Input (TIEN.inp)
5 3
2 4 6
Output (TIEN.out)
-1
Note

Không có cách nào để các tờ tiền mệnh giá 2, 4, 6 tạo thành số tiền là 5 cho nên in ra -1

Đa giác

haiender288

Cho đa giác lồi gồm n đỉnh và m đường chéo. Biết rằng nếu hai đường chéo khác nhau chỉ có thể gặp nhau tại đỉnh của đa giác. Các đỉnh của đa giác được đánh số từ 1 tới n theo một hoán vị nào đó.
Yêu cầu: Cho biết danh sách n cạnh và m đường chéo, hãy liệt kê các đỉnh của đa giác theo đúng thứ tự tạo thành đa giác đã cho.

Input, Output

Input: (POLYGON.inp)
  • Dòng 1 chứa hai số nguyên không âm n, m\leq 10^5 (n\geq 3).
  • n+m dòng tiếp theo, mỗi dòng chứa hai số nguyên dương i, j cho biết có đường chéo hoặc cạnh nối từ đỉnh i tới đỉnh j.
Output: (POLYGON.out)
  • Ghi ra một dòng liệt kê dãy các đỉnh của đa giác. Bởi có nhiều cách liệt kê đỉnh xác định đa giác đã cho, cần đưa ra dãy có thứ tự từ điển nhỏ nhất

Sample

Input (POLYGON.inp)
4 1
1 2
1 3
1 4
2 3
2 4 
Output (POLYGON.out)
1 3 2 4

Lọc nước (TP Hồ Chí Minh 2025)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: LOCNUOC.INP
  • Tệp ra: LOCNUOC.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

TLEOJ Contest #10 - Dãy con chính phương

icebearlovecode

Trong thủ đô Penguin có n ngôi nhà, ngôi nhà thứ i có mã định danh là a_i. Sau khi đi dạo trong thủ đô, thị trưởng chinhoangmanutd nhận thấy các ngôi nhà không được đẹp nên nhờ jiangly kiểm tra xem có bao nhiêu dãy nhà liên tiếp có tổng mã định danh là một số chính phương để chinhoangmanutd đầu tư và nâng cấp. Sau khi tìm được kết quả, jiangly vui vẻ mang kết quả đến cho thị trưởng chinhoangmanutd nhưng do mãi xem màn trình diễn ảo thuật chinh chong nên cậu đã quên mất kết quả là bao nhiêu. Bạn hãy giúp jiangly tìm lại kết quả đó nhé.

Input, Output và Subtask

Input

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

Output

  • Gồm 1 dòng duy nhất là kết quả thỏa mãn.

Subtask

  • Subtask 1 (50\%): 1 \le n \le 100.
  • Subtask 2 (50\%): Không có giới hạn gì thêm.

Example

Input

4
7 5 4 9

Output

5
Note
  • Có 5 dãy có tổng là số chính phương là [4], [9], [5, 4], [7, 5, 4], [7, 5, 4, 9].

Tìm số (Hậu Giang 2023)

Đề bài: Đề thi được đính kèm trong tệp PDF bên dưới.

  • Tệp vào: DAYSO.INP
  • Tệp ra: DAYSO.OUT
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Số cách đi quân mã (OLP 30/4 2023)

Sunlight

Xét một bàn cờ vua có kích thước m \times n có m hàng n cột.

Các hàng được đánh số từ 1 đến m và các cột được đánh số từ 1 đến n.

Một quân mã xuất phát từ một ô trên bàn cờ có thể đi đến một trong bốn ô như hình vẽ.

Ngoài ra, trên bàn cờ có k ô mà quân mã không được phép đi vào. Những ô này được gọi là những ô bị cấm.

Yêu cầu: Tìm số cách di chuyển của quân mã từ ô (x, y) đến ô (m, n).

Input, Output và Subtasks

Input: (SOCACH.inp)
  • Dòng đầu ghi 4 số nguyên dương m, n, k, Q (1 < m, n \le 1000; 0 \le k \le 10; Q \le 10^5).
  • Trên k dòng tiếp theo, mỗi dòng ghi hai số nguyên k_{x_i}, k_{y_i} cho biết ô (k_{x_i}, k_{y_i}) bị cấm.
  • Trên Q dòng tiếp theo, mỗi dòng ghi hai số nguyên dương x_i, y_i.

Các số ghi trên một dòng cách nhau ít nhất một khoảng trắng.

Output: (SOCACH.out)
  • Gồm Q số nguyên W_i, mỗi số trên một dòng cho biết số cách di chuyển quân mã từ ô (x_i, y_i) cho trước đến ô (m, n).
  • Trong đó, số nguyên W_i là phần dư của phép chia số cách di chuyển quân mã từ ô (x_i, y_i) cho trước đến ô (m, n) cho 10^9.
Subtasks
  • Subtask 1 (30\%): n, m \le 100, k = 0, Q \le 10^2.
  • Subtask 2 (20\%): n, m \le 100, 0 < k \le 10, Q \le 10^2.
  • Subtask 3 (50\%): Không có giới hạn gì thêm.

Sample

Input (SOCACH.inp)
4 5 1 3
2 4
1 2
3 3
2 4
Output (SOCACH.out)
1
1
0
Note
  • No note.