[Buổi 24][Hàm tiền tố & KMP][HW] Bài 3: Hồ sơ hàm tiền tố


LÀM BÀI

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

Author:
Problem type

Hồ sơ hàm tiền tố

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

Một bộ phân tích chuỗi cần lưu "hồ sơ tự khớp" tại từng vị trí. Với mỗi tiền tố kết thúc tại vị trí i, hệ thống muốn biết độ dài lớn nhất của một tiền tố của toàn chuỗi cũng đồng thời là hậu tố của đoạn s[0..i].

Yêu cầu

Tính mảng hàm tiền tố pi của chuỗi và in pi[0], pi[1], ..., pi[n-1].

Input

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

Output

In n số nguyên là các giá trị của hàm tiền tố.

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 30% |s| <= 100 01–03
S2 70% Không có ràng buộc bổ sung 04–10

Ví dụ 1

Input

abaabca

Output

0 0 1 1 2 0 1

Giải thích. Ví dụ pi[4]=2 vì đoạn abaab có tiền tố/hậu tố chung dài nhất là ab.

Ví dụ 2

Input

aaaa

Output

0 1 2 3

Giải thích. Mỗi vị trí kéo dài border trước đó thêm một ký tự.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M08-B24-HW03
Buổi B24
Loại bài HOMEWORK
Mức độ khó Dễ (Easy)
Thời gian làm bài khuyến nghị 25 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 – String Functions – String Functions (2107).


Comments

There are no comments at the moment.

Zalo