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

21 lines
No EOL
412 B
Python

import sys
data = sys.stdin.read().split()
s, t = data[0], data[1]
m = len(t)
st = t + "#" + s
n = len(st)
z = [0] * n
l, r = 0, 0
ans = []
for i in range(1, n):
if i <= r:
z[i] = min(r - i + 1, z[i - l])
while i + z[i] < n and st[z[i]] == st[i + z[i]]:
z[i] += 1
if i + z[i] - 1 > r:
l = i
r = i + z[i] - 1
if z[i] == m:
ans.append(i - m - 1)
print(*ans)