Guest User

Untitled

a guest
May 24th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.61 KB | None | 0 0
  1. const
  2.   divisor = '#';
  3. var
  4.   s,p,z : string;
  5.   k,i,d : longint;
  6.   pre : array [1..10000] of longint;
  7. begin
  8.   assign(input,'input.txt'); reset(input);
  9.   assign(output,'output.txt'); rewrite(output);
  10.   readln(s);
  11.   readln(p);
  12.   z:=p+divisor+s;
  13.   d:=length(z);
  14.   pre[1]:=0;
  15.   k:=0;
  16.   for i:=2 to d do begin
  17.     while (k<>0) and (z[k+1]<>z[i]) do begin
  18.       k:=pre[k];
  19.     end;
  20.     if (z[k+1]=z[i])
  21.       then inc(k);
  22.     pre[i]:=k;
  23.   end;
  24.   for i:=1 to d do
  25.     if (pre[i]=length(p))
  26.       then begin
  27.         writeln(i-2*length(p));
  28.         break;
  29.       end;
  30.   close(input); close(output);
  31. end.
Add Comment
Please, Sign In to add comment