Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## [Pascal]字符串类型记得使用ansistring !!!!!!!!!!!!!!!!

Posted by SinTASO at 2015-09-29 21:10:14 on Problem 1458

——————————————————————————

{Program poj1458;
Const
maxn=400;
Var
i,j,k,n,m,p:longint;
A,B:array[0..maxn]of longint;
F:array[0..maxn,0..maxn]of longint;
S:ansistring;
{}Procedure ins(ch:char;p:longint);
begin
if p=1
then begin
inc(A[0]);
A[A[0]]:=ord(ch);
end
else begin
inc(B[0]);
B[B[0]]:=ord(ch);
end;
end;
{}Function max(a,b:longint):longint;
begin
if a<b then exit(b);
exit(a);
end;
Begin
while true do begin
if length(S)=0 then halt;
fillchar(A,sizeof(A),0);
fillchar(B,sizeof(B),0);
fillchar(F,sizeof(F),0);
p:=1;
for i:=1 to length(S) do
case S[i] of
'a'..'z':ins(S[i],p);
else p:=2;
end;
for i:=1 to A[0] do
for j:=1 to B[0] do begin
if A[i]=B[j]
then F[i,j]:=max(F[i-1,j],max(F[i-1,j-1]+1,F[i,j-1]))
else F[i,j]:=max(F[i-1,j],max(F[i-1,j-1],  F[i,j-1]));
end;
writeln(F[A[0],B[0]]);
end;
End.}

Followed by: