[Buổi 24][Hàm tiền tố & KMP][HW] Bài 2: Chu kỳ phát tín hiệu


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types

Chu kỳ phát tín hiệu

Bối cảnh và bài toán

Một thiết bị phát tín hiệu bằng cách lặp lại một mẫu từ đầu chuỗi. Ở lần lặp cuối, thiết bị có thể dừng giữa chừng khi phiên truyền kết thúc. Kỹ sư muốn biết những độ dài mẫu nào có thể sinh ra đúng chuỗi đã ghi nhận.

Yêu cầu

Tìm mọi độ dài p sao cho chuỗi được tạo bởi việc lặp tiền tố dài p, trong đó lần lặp cuối có thể chỉ dùng một phần.

Input

Một dòng chứa chuỗi s.

Output

In mọi độ dài chu kỳ theo thứ tự tăng dần.

Ràng buộc

  • 1 <= |s| <= 10^6
  • s chỉ gồm chữ cái thường a..z.

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% |s| <= 200 01–04
S2 30% |s| <= 10^4 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

abcabca

Output

3 6 7

Giải thích. Mẫu dài 3 là abc; lặp abcabc... sinh ra 7 ký tự đầu đúng bằng chuỗi. Độ dài 6 và 7 cũng hợp lệ.

Ví dụ 2

Input

aaaa

Output

1 2 3 4

Giải thích. Mọi tiền tố của chuỗi toàn ký tự a đều có thể sinh chuỗi khi cho phép lần lặp cuối không đầy đủ.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M08-B24-HW02
Buổi B24
Loại bài HOMEWORK
Mức độ khó Trung bình (Medium)
Thời gian làm bài khuyến nghị 40 phút
Time limit 2 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên

Nguồn: Phỏng theo / Adapted from: CSES Problem Set – Finding Periods – Finding Periods (1733).


Comments

There are no comments at the moment.

Zalo