NKEDIT - Hiệu chỉnh văn bản

Tác giả: RR

Ngôn ngữ: Pascal

{$R+,Q+}
uses math;
const
  FINP='';
  FOUT='';
  MAXN=51;
var
  x,y,count,k:longint;
  s1,s2:string;
  f1,f2:text;
procedure openF;
begin
  assign(f1,FINP); reset(f1);
  assign(f2,FOUT); rewrite(f2);
end;
procedure closeF;
begin
  close(f1); close(f2);
end;
procedure inp;
begin
  readln(f1,k);
  readln(f1,s1); x:=length(s1);
  readln(f1,s2); y:=length(s2);
end;
procedure ans;
begin
  writeln(f2,count);
  writeln(f2,s1);
  writeln(f2,s2);
end;
function find(var start1,start2:longint):longint;
var
  i,j,ln,l,u,v:longint;
begin
  ln:=-1;
  for u:=1 to x do
  for v:=1 to y do
    begin
      i:=u; j:=v; l:=0;
      while (i<=x) and (j<=y) and (s1[i]=s2[j]) do
        begin
          inc(l);
          inc(i); inc(j);
        end;
      if l>ln then
        begin
          ln:=l;
          start1:=u;
          start2:=v;
        end;
    end;
  find:=ln;
end;
procedure solve;
var
  ln,i,j:longint;
begin
  count:=0;
  ln:=find(i,j);
  while ln>=k do
    begin
      inc(count);
      delete(s1,i,ln);
      delete(s2,j,ln);
      x:=length(s1); y:=length(s2);
      ln:=find(i,j);
    end;
end;
begin
  openF;
  inp;
  solve;
  ans;
  closeF;
end.

Download