Cod sursa(job #743663)

Utilizator RadioactivMihai Preguza Radioactiv Data 5 mai 2012 14:10:33
Problema Potrivirea sirurilor Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.85 kb
var l1,l2,k,i:longint;
    s1,s2:array[1..2000000] of char;
    t:array[1..2000000] of longint;
    b:array[1..1 shl 17] of char;
function valid(x:longint):boolean;
var b:boolean;
    i:longint;
Begin
  b:=true;
  for i:=1 to l1 do
    if s2[i+x-1]<>s1[i] then
      b:=false;
  valid:=b;
End;


BEGIN
  assign(input,'strmatch.in');
  settextbuf(input,b);
  reset(input);
  l1:=0;l2:=0;k:=0;
  while not eoln do
    begin
      l1:=l1+1;
      read(s1[l1]);
    end;
  readln;
  while not eoln do
    begin
      l2:=l2+1;
      read(s2[l2]);
    end;
  for i:=1 to l2-l1+2 do
    if s2[i]=s1[1] then
      if valid(i) then
        begin
          k:=k+1;
          t[k]:=i-1;
        end;

assign(output,'strmatch.out');
rewrite(output);
  writeln(k);
if k>1000 then k:=1000;
  for i:=1 to k do
    write(t[i],' ');
END.