#717. Chu kỳ của chuỗi (OKR)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Một chuỗi là một dãy hữu hạn các ký tự in thường, đặc biệt, một dãy rỗng cũng có thể là một chuỗi. Một chuỗi P là tiền tố của chuỗi A khi và chỉ khi tồn tại chuỗi B sao cho A = PB . Nếu P \not = A P không phải là chuỗi rỗng, ta nói P là một tiền tố thực sự (proper prefix) của A .

Định nghĩa Q là một chu kỳ của A khi và chỉ khi Q là một tiền tố thực sự của A A là tiền tố của QQ (không nhất thiết phải là tiền tố thực sự). Ví dụ, chuỗi ababababab đều là chu kỳ của chuỗi abababa. Chu kỳ lớn nhất của chuỗi A là chu kỳ dài nhất của nó hoặc là một chuỗi rỗng (khi A không có chu kỳ). Ví dụ, chu kỳ lớn nhất của ababababab. Chu kỳ lớn nhất của chuỗi abc là chuỗi rỗng.

Cho một chuỗi, hãy tính tổng độ dài chu kỳ lớn nhất của tất cả các tiền tố của nó.

Dữ liệu:

  • Dòng đầu tiên chứa một số nguyên k (1\leq k\leq 10^6) , biểu thị độ dài của chuỗi.
  • Dòng tiếp theo chứa chuỗi đã cho.

Kết quả:

  • Xuất ra một số nguyên biểu thị tổng độ dài chu kỳ lớn nhất của tất cả các tiền tố của chuỗi đó.

Ví dụ:

Dữ liệu:

8
babababa

Kết quả:

24