Pagini recente » Cod sursa (job #2555153) | Cod sursa (job #361887) | Cod sursa (job #3919) | Cod sursa (job #2293606) | Cod sursa (job #1423191)
var a,b:string;
i,n,m,k,j:longint;
v,q: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;
j:=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
inc(j);
q[j]:=i-n;
k:=v[n];
end;
end;
writeln(j);
if j<=1000 then
for i:=1 to j do
write(q[i],' ')
else for i:=1 to 1000 do
write(q[i],' ');
end.