Pagini recente » Cod sursa (job #2481706) | Cod sursa (job #3216629) | Cod sursa (job #2497627) | Cod sursa (job #1415508) | Cod sursa (job #1423183)
var a,b:string;
i,n,m,k:longint;
v:array[0..1000000] of longint;
begin
// assign(input,'input.in');
assign(input,'strmatch.in');
assign(output,'strmatch.out');
reset(input);
rewrite(output);
readln(a);
readln(b);
n:=length(a);
m:=length(b);
k:=0;
v[1]:=0;
for i:=2 to n do begin
while (k>0) and (a[k+1]<>a[i]) do
k:=v[k];
if a[k+1]=a[i] then inc(k);
v[i]:=k;
end;
k:=0;
for i:=1 to m do begin
while (k>0) and (a[k+1]<>b[i])do
k:=v[k];
if a[k+1]=b[i] then inc(k);
if k=n then begin
write(i-n+1,' ');
k:=v[n];
end;
end;
end.