Số đặc biệt (HSG9 QT 2023)

Sunlight

Một số nguyên dương X gọi là số đặc biệt nếu thỏa mãn hai điều kiện sau:

  • X là số nguyên tố
  • Số lượng chữ số chẵn và số lượng chữ số lẻ trong X là khác nhau

Yêu cầu: Cho một dãy số nguyên gồm N phần tử A_1, A_2, ..., A_N. Hãy đếm số lượng phần tử là số đặc biệt của dãy A

Input, Output và Subtasks

Input: (SODB.inp)
  • Dòng thứ nhất ghi số nguyên dương N
  • Dòng thứ hai chứa số nguyên A_1, A_2, ..., A_N. Các số viết cách nhau một dấu cách
Output: (SODB.out)
  • Một số nguyên duy nhất là số lượng số đặc biệt đếm được
Subtasks
  • Subtask 1 (60\%): 1\le N\le 300; 1\le A_i\le 5\cdot 10^4
  • Subtask 2 (20\%): 1\le N\le 300; |A_i|\le 10^{12}
  • Subtask 3 (20\%): 1\le N\le 2\cdot 10^6; |A_i|\le 2\cdot 10^6

Sample

Input (SODB.inp)
5
121 311 122 23 241
Output (SODB.out)
2
Note

Dãy A có 2 số đặc biệt là 311 và 241

TLEoj Cup Final Day 1 - Đồ thị xor

Cho một đồ thị có 2^n đỉnh được đánh số từ 0 đến 2^n - 1 và một dãy số nguyên a_1, a_2, ..., a_m. Tồn tại cạnh nối giữa đỉnh i và j khi và chỉ khi i\ xor\ j = a_k với 1 \le k \le m. Cho q truy vấn, mỗi truy vấn gồm hai số nguyên u, v, nhiệm vụ của bạn là tìm độ dài đường đi ngắn nhất từ đỉnh u đến đỉnh v.

Input, Output và Subtask
Input (XORG.inp)
  • Dòng đầu tiên gồm ba số nguyên dương n, m, q (n \le 60, m \le 20, q \le 10^6)
  • Dòng thứ hai gồm m số nguyên dương a_1, a_2, ..., a_m.
  • q dòng tiếp theo, mỗi dòng gồm hai số nguyên dương u, v,
Output (XORG.out)
  • Gồm q dòng, dòng thứ i là kết quả của truy vấn thứ i. Nếu không tồn tại đường đi giữa hai đỉnh u, v, in ra -1.
Subtask
  • 20\% số điểm có n \le 10.
  • 20\% số điểm khác có n \le 20.
  • 20\% số điểm khác có m = 1.
  • 20\% số điểm khác có m = 2.
  • 20\% số điểm còn lại không có giới hạn gì thêm.
Sample 1
Input (XORG.inp)
3 2 4
5 3
1 7
3 5
1 5
0 3
Output (XORG.out)
2
2
-1
1
Notes

Đồ thị sẽ có dạng như sau

Input (XORG.inp) Output (XORG.out) Note
3 2 4 n = 3, m = 2, q = 4
5 3 a = (5, 3)
1 7 2 Đường đi ngắn nhất là 1 \rightarrow 2 \rightarrow 7.
3 5 2 Đường đi ngắn nhất là 3 \rightarrow 6 \rightarrow 5.
1 5 -1 Không có đường đi từ 1 đến 5.
0 3 1 Có đường đi trực tiếp từ 0 đến 3.

TLEoj Contest #03 - Giá trị MEX cuối cùng

huyhau6a2

Trong dãy số A, ta định nghĩa mex(A) là số nguyên dương nhỏ nhất không xuất hiện trong dãy A. VD: mex(2,1,3,69,420)=4; mex(2,3,4,5)=1

Bạn được cho một dãy số a gồm n phần tử có giá trị 1 và m phần tử có giá trị 2. Bạn được phép thực hiện hành động sau: Chọn 1 dãy con của dãy a bao gồm tối thiểu hai phần tử, sau đó xóa tất cả phần tử trong dãy con đó, cuối cùng thêm lại vào dãy a giá trị mex của dãy con đã xóa vừa rồi. Hành động này được thực hiện đến khi còn chính xác một phần tử. Dễ dàng nhận thấy sau một số lượng hành động nhất định dãy sẽ còn chính xác một phần tử. Nhiệm vụ của bạn là tìm ra giá trị tối đa của phần tử cuối cùng sau khi dãy còn đúng 1 phần tử.

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 nhập 2 số n,m (0\le n,m\le 10^{18},n+m>0)
Output
  • Xuất ra t dòng, mỗi dòng gồm 1 số tương ứng với kết quả từng testcase.
Scoring
  • Subtask 1 (20\%): t\le 5;n,m\le 10
  • Subtask 2 (20\%): n,m\le 10^3
  • Subtask 3 (60\%): Không có ràng buộc gì thêm

Sample

Input
1
1 1
Output
3

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

A problem with a sussy content

flo

Đây là một câu chuyện có thật, tuy nhiên đã được biển đổi một chút.

Bạn cũng nên thử bài này

TLEoj được nhiều người biết đến là một trang chấm bài trực tuyến với vô vàng bài tập thú vị và những con người thân thiện. Ngoài ra, TLEoj cũng thường xuyên tổ chức các cuộc thi lập trình để những người nơi đây học hỏi thêm nhiều điều mới lạ hơn. Sau những cuộc thi ấy là một nhóm setter chăm chỉ, thường nghĩ ra những bài tập hay ho, thú vị cho mọi người nơi đây làm và flo của chúng ta là một trong số đó.

Sau một giấc ngủ thoải mái, flo tỉnh dậy và kiểm tra tin nhắn của mình. Bỗng cậu thấy có một tin nhắn được gửi đến với nội dung như sau:

Nội dung tin nhắn

  • Nhóm setter TLEoj bọn bây quá gà, set toàn bài dở mà bày đặt tổ chức contest. Toàn mấy bài rách không ai thèm làm.

Vì là một trong những admin chính của TLEoj, flo đã rất bực mình và cay cú với người gửi tin nhắn trên. Thế là cậu bắt tay vào làm ngay một bài siêu khó để gửi lại cho người ấy như là một thử thách. Bài ấy có nội dung được tiết lộ như sau.

Nội dung bài

Cho n điểm cùng với 1 điểm O trên mặt phẳng tọa độ, điểm thứ i có tọa độ là (x_i, y_i), điểm O có tọa độ là (x_o, y_o) và các tọa độ sẽ phân biệt với nhau. Giá trị D của 2 điểm (x_i, y_i), (x_j, y_j) là khoảng cách ngắn nhất giữa đường thẳng cắt hai điểm đó và điểm O.

Nhiệm vụ của bạn là tìm giá trị D của 2 điểm bất kỳ trong n điểm trên sao cho nó có giá trị lớn thứ n.

Tuy là người ra bài nhưng flo lại không thể nào giải được bởi lẽ nó quá khó. Là một con người thân thiện ở TLEoj, bạn hãy giúp flo nhé.

Input, Output and Scoring

Input

  • Ba số nguyên dương n, x_o, y_o (3 \le n \le 2 \times 10^5; -10^6 \le x_o, y_o \le 10^6).
  • n dòng tiếp theo, dòng thứ i chứa tọa độ điểm i là (x_i, y_i) (-10^6 \le x_i, y_i \le 10^6).

Output

  • In ra giá trị D và lấy 8 chữ số thập phân đầu tiên.
  • Kết quả của bạn sẽ được chấp nhận nếu chênh lệch giữa nó và đáp án không quá 10^{-8}.

Scoring

  • Subtask 1 (30\%): 1 \le n \le 2 \times 10^3.
  • Subtask 2 (70\%): Không giởi hạn gì thêm.

Example

Input

3 1 2
-3 4
5 -1
3 6

Output

0.42399824
Note
  • Ta có thể thấy khoảng cách từ O đến đường thẳng AB là lớn thứ 3.
  • Hình ở dưới có 1 chút sai lệch mà mình chỉnh không được dẫn đến kết quả khác ở trên.

Độ mạnh của xâu (Tiền Giang 2024)

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

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

Thang nhiệt độ (Quảng Ninh 2025)

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

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

Bedan Contest #02 - B - Qua cầu

flo

Đây mới là bản dễ.

Sau một ngày dài đi học mệt mỏi, huyhau6a2 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, huyhau6a2 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, huyhau6a2 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à huyhau6a2 đã đ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ì huyhau6a2 mới chiến thắng.

huyhau6a2 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 huyhau6a2 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).

Mật độ xuất hiện cao (HSG9 NA 2023)

Sunlight

Trò chơi chọn bóng mà nhóm của Tuấn thiết kế được bạn bè và giáo viên trong trường đánh giá rất cao. Sau thành công này, Tuấn cùng nhóm bạn tập trung học tập để thi vào lớp chuyên tin của một trường chuyên danh giá trong tỉnh. Những bài tập mà Tuấn làm đều yêu cầu kỹ năng thiết kế thuật toán chuyên nghiệp. Một trong các bài tập mà bạn ấy đang xây dựng thuật toán có nội dung như sau:

Cho chuỗi kí tự S chỉ gồm các kí tự chữ cái latinh thường từ a, ..., z. Một chuỗi con X (gồm các kí tự ở vị trí liên tiếp) của S được gọi là một chuỗi có mật độ xuất hiện cao nếu trong chuỗi X có một kí tự mà số lần xuất hiện của kí tự đó nhiều hơn số các kí tự còn lại trong chuỗi X.

Ví dụ, chuỗi S=abbbabced, chuỗi con X=abbbabc là một chuỗi có mật độ xuất hiện cao, vì có kí tự b xuất hiện 4 lần, số các kí tự còn lại là 3. Nếu X=abbbabce, kí tự xuất hiện nhiều lần nhất 4 lần (kí tự b) và số kí tự còn lại là 4. Do vậy chuỗi X=abbbabce không phải là một chuỗi có mật độ xuất hiện cao.

Yêu cầu: Tìm một chuỗi con X (gồm các kí tự ở vị trí liên tiếp) của S là một chuỗi có mật độ xuất hiện cao và độ dài lớn nhất.

Tuấn cũng đã có thuật toán của mình, còn bạn thì sao? Hãy lập trình giải bài toán trên để đối chiếu kết quả nhé.

Input, Output và Subtasks

Input: (MatDo.inp)
  • Gồm một chuỗi kí tự S chỉ gồm các kí tự chữ cái latinh thường và có độ dài không lớn hơn 2\times 10^5.
Output: (MatDo.out)
  • Gồm một số nguyên duy nhất là độ dài của chuỗi X tìm được.
Subtasks
  • Có 30\% số test ứng với 30\% số điểm thỏa mãn:
    Chuỗi S chỉ gồm các kí tự thuốc tập 3 kí tự \{a,b,c\} và độ dài chuỗi S không quá 2\times 10^5.
  • Có 30\% số test ứng với 30\% số điểm thỏa mãn:
    Chuỗi S chỉ gồm các kí tự chữ cái latinh thường và độ dài chuỗi S không quá 2\times 10^3.
  • Có 40\% số test ứng với 40\% số điểm thỏa mãn:
    Chuỗi S chỉ gồm các kí tự chữ cái latinh thường và độ dài chuỗi S không quá 2\times 10^5.

Sample

Input (MatDo.inp)
abbbabced
Output (MatDo.out)
7
Notes

Ta có thể chọn chuỗi X thỏa mãn là:
X=abbbabc hoặc X=bbbabce.

Sample

Input (MatDo.inp)
ababab
Output (MatDo.out)
5
Notes

Ta có thể chọn chuỗi X thỏa mãn là:
X=ababa vì kí tự a xuất hiện 3 lần, số các kí tự còn lại là 2.
hoặc X=babab vì kí tự b xuất hiện 3 lần, số các kí tự còn lại là 2.

Sample

Input (MatDo.inp)
abc
Output (MatDo.out)
1
Notes

Ta có thể chọn chuỗi X thỏa mãn là:
X=a vì kí tự a xuất hiện 1 lần, số các kí tự còn lại là 0.
hoặc X=b, X=c đều thỏa mãn.

Số X nhỏ nhất (Đắk Lắk 2024)

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

  • Tệp vào: Bàn phím
  • Tệp ra: Màn hình
  • Thời gian chạy: 1.0s
  • Bộ nhớ: 1024MB

Trò chơi (Bà Rịa Vũng Tàu 2023)

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

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

Tìm số (Thanh Hóa 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

TLE-oj Cup Round 8 - Gcd về 0

huyhau6a2

Bạn được cho 2 số n và m. Mỗi bước bạn được trừ n cho ước chung lớn nhất của n và m. Nhiệm vụ của bạn là đếm số bước để đưa n về 0

Input, Output và Subtasks

Input: (GCDTOZERO.inp)
  • Dòng đầu tiên gồm 2 số n và m (n\le 10^{18},m\le 10^{16})
Output: (GCDTOZERO.out)
  • Một số duy nhất là kết quả của bài toán
Subtasks
  • Subtask 1 (10\%): n\le 10^6.
  • Subtask 2 (10\%): n\le 10^8.
  • Subtask 3 (10\%): n\le 10^{10}.
  • Subtask 4 (15\%): n\le 10^{12}.
  • Subtask 5 (15\%): n\le 10^{14}.
  • Subtask 6 (15\%): n\le 10^{16}.
  • Subtask 7 (25\%): Không có ràng buộc gì thêm

Sample

Input (GCDTOZERO.inp)
10 3
Output (GCDTOZERO.out)
4

Dãy số fibonacci

Sunlight

Fix đề: In ra kết quả với sai số không quá 10^{-6}.

TLE-oj Cup Round 4 - Quân Mã k chiều

Sunlight

Trên một bàn cờ vua k chiều, với kích thước được định trước bởi một dãy số nguyên a_1, a_2, ..., a_k, với ý nghĩa là ở chiều thứ i có a_i ô, có đặt một quân Mã ở vị trí (b_1, b_2, ..., b_k).

Trong mỗi nước đi, quân Mã sẽ thực hiện thao tác sau:

  • Chọn hai chiều i và j.
  • Thực hiện nước đi hình chữ L như trên bàn cờ hai chiều.

Tổng quát hóa, quân Mã có thể đi được đến ô (c_1, c_2, ..., c_k) khi và chỉ khi thỏa mãn hai điều kiện sau:

  • |c_1 - b_1| + |c_2 - b_2| + ... + |c_k - b_k| = 3.
  • max(|c_1 - b_1|, |c_2 - b_2|, .., |c_k - b_k|) = 2.

Đếm số ô mà quân Mã đến được trong một nước đi.

Input, Output và Subtasks

Input: (KDKNIGHT.inp)
  • Dòng đầu tiên gồm số nguyên dương 2 \le k \le 10^5 là số chiều của bàn cờ.
  • Dòng tiếp theo gồm k số nguyên dương a_1, a_2, ..., a_k, a_i \le 10^9 mô tả kích thước của bàn cờ.
  • Dòng tiếp theo gồm k số nguyên dương b_1, b_2, ..., b_k, b_i \le a_i mô tả vị trí của quân Mã.
Output: (KDKNIGHT.out)
  • Một dòng duy nhất là kết quả bài toán sau khi chia lấy dư cho 10^9+7.
Subtasks
  • Subtask 1 (20\%): k = 2.
  • Subtask 2 (20\%): min(a_i - b_i, b_i) \ge 3.
  • Subtask 3 (30\%): k \le 1000, a_i \le 1000.
  • Subtask 4 (30\%): Không có giới hạn gì thêm.

Sample

Input (KDKNIGHT.inp)
3
3 3 3
1 2 3
Output (KDKNIGHT.out)
6
Notes

Các ô đi được là: (2, 2, 1); (3, 2, 2); (3, 3, 3); (3, 1, 3); (1, 3, 1); (1, 1, 1).

Truy vấn mảng (Vĩnh Phúc 2024)

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

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