test/5A.py
2026-07-01 19:46:51 +03:00

17 lines
No EOL
307 B
Python

import sys
s = sys.stdin.read().strip()
n = len(s)
z = [0] * n
z[0] = n
l, r = 0, 0
for i in range(1, n):
if i <= r:
z[i] = min(r - i + 1, z[i - l])
while i + z[i] < n and s[z[i]] == s[i + z[i]]:
z[i] += 1
if i + z[i] - 1 > r:
l = i
r = i + z[i] - 1
print(*(z))