Mật khẩu tuần hoàn
Đề bài
Mô tả
Trên không gian mạng, mỗi người dùng đều được đại diện bởi một tài khoản định danh kèm theo một phương thức bảo vệ. Mật khẩu là một công cụ bảo mật phổ biến, được tạo thành bởi một chuỗi các ký tự đặc trưng riêng của chủ nhân tài khoản.
Ngày nay, mật khẩu tỏ ra kém an toàn hơn các công cụ bảo mật mới khác như nhận diện khuôn mặt (Face ID), dấu vân tay (fingerprint) hay xác thực hai lớp (2FA), bởi mật khẩu có thể dễ dàng bị "bẻ khoá" bởi những phương thức tấn công đơn giản như "tấn công brute-force": duyệt tự động tất cả các khả năng của xâu mật khẩu. Phương thức này đặc biệt nguy hiểm nếu mật khẩu có chứa các xâu con tuần hoàn, bởi quy luật tuần hoàn có thể khiến cho mật khẩu trở nên dễ đoán hơn.
Bạn là chủ tài khoản của một hệ thống mạng nội bộ. Để đảm bảo an toàn, bạn cần kiểm tra lại xem mật khẩu hiện tại của tài khoản có tồn tại sự tuần hoàn nào hay không. Biết rằng mật khẩu hiện tại là một xâu gồm ký tự Latin thường. Bạn hãy thực hiện yêu cầu kiểm tra sự tuần hoàn của các xâu con của mật khẩu trên (). Xâu con gồm các ký tự từ vị trí đến vị trí của (các vị trí đánh số từ ).
Lưu ý: Một xâu gọi là tuần hoàn nếu tồn tại một xâu sao cho (ghép liền nhau từ hai bản sao của trở lên).
Ví dụ, xâu là xâu tuần hoàn vì nó được cấu tạo bởi xâu ghép liền với nhau. Ngược lại, xâu không phải là xâu tuần hoàn. Xâu chỉ gồm một ký tự cũng không phải là xâu tuần hoàn.
Yêu cầu: Với mỗi truy vấn, xác định xem xâu con tương ứng có phải là xâu tuần hoàn hay không.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên dương mô tả độ dài mật khẩu.
- Dòng tiếp theo chứa xâu mô tả mật khẩu gồm ký tự Latin in thường.
- Dòng tiếp theo chứa số nguyên dương mô tả số yêu cầu kiểm tra.
- dòng tiếp theo, dòng thứ chứa hai số nguyên dương và () mô tả yêu cầu kiểm tra thứ trên xâu .
Dữ liệu ra
Gồm dòng, dòng thứ ứng với truy vấn là YES (nếu xâu con tuần hoàn) hoặc NO (nếu xâu con không tuần hoàn).
Ràng buộc
- .
- .
Subtasks
- Subtask 1 ( số điểm): .
- Subtask 2 ( số điểm): .
- Subtask 3 ( số điểm): .
- Subtask 4 ( số điểm): .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 14 abacbaabcabccc 5 1 14 1 4 7 12 12 14 7 11 |
NO NO YES YES NO |
Truy vấn 1: không tuần hoàn. Truy vấn 2: không tuần hoàn. Truy vấn 3: . Truy vấn 4: . Truy vấn 5: không tuần hoàn. |
| 11 abababaaaaa 5 1 6 1 5 7 11 4 4 6 9 |
YES NO YES NO NO |
Ví dụ bổ sung. Truy vấn 1: . Truy vấn 2: không tuần hoàn (độ dài không chia hết cho ). Truy vấn 3: gồm xâu . Truy vấn 4: xâu một ký tự không tuần hoàn. Truy vấn 5: không tuần hoàn. |
Bình luận