Cod sursa(job #179773)
Utilizator | Data | 16 aprilie 2008 12:33:39 | |
---|---|---|---|
Problema | Potrivirea sirurilor | Scor | 14 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 2.09 kb |
var s1,s2:array[1..20000] of char;
v:array[1..200] of longint;
c,d,nr,e:longint;
f:text;
procedure citire;
var i:longint;
begin
assign(f,'strmatch.in');
reset(f);
i:=1;
while not eoln(f) do begin
read(f,s1[i]);
inc(i)
end;
c:=i;
readln(f);
i:=1;
while not eoln(f) do begin
read(f,s2[i]);
inc(i)
end;
close(f);
d:=i
end;
procedure cautare;
var i,j:longint;
ok:boolean;
begin
i:=1;
nr:=0;
e:=1;
while i<=d-c do begin
ok:=true;
j:=0;
if s1[i]=s2[i] then begin
for j:=1 to c-1 do
if s1[i+j]=s2[i+j] then ok:=true
else begin
ok:=false;
break
end
end;
if ok=true then begin
inc(nr);
v[e]:=i+j;
inc(e);
end;
i:=i+j+1
end
end;
procedure afisare;
var i:integer;
begin
assign(f,'strmatch.out');
rewrite(f);
writeln(f,nr);
i:=1;
while (i<=1000) and (i<=nr) do begin
write(f,v[i],' ');
inc(i)
end;
close(f)
end;
begin
citire;
cautare;
afisare
end.