QBSTR - Xâu con chung dài nhất

Tác giả: RR

Ngôn ngữ: Pascal

uses math;
const
  MAXN=2011;
var
  a,b:ansistring;
  m,n:longint;
  f:array[0..MAXN,0..MAXN] of longint;
  i,j:longint;

begin
  readln(a); m:=length(a);
  readln(b); n:=length(b);

  for i:=1 to m do
  for j:=1 to n do
    if a[i]=b[j] then f[i,j]:=f[i-1,j-1]+1
    else f[i,j]:=max(f[i-1,j],f[i,j-1]);

  writeln(f[m,n]);
end.

Download