st:string;
map:array[0..9,0..9] of boolean;
num,change:array[0..9] of longint;
a:array[0..10000] of longint;
i,j,k,m:longint;
procedure hp;
var
i,x,j,k:longint;
begin
a[0]:=1; a[1]:=1;
for i:=1 to length(st) do
begin
for j:=1 to a[0] do a[j]:=a[j]*change[ord(st[i])-48];
for j:=1 to a[0] do
begin
inc(a[j+1],a[j] div 10);
a[j]:=a[j] mod 10;
end;
while a[a[0]+1]>0 do inc(a[0]);
end;
end;
begin
readln(st);
val(copy(st,pos(' ',st)+1,length(st)),m,k);
st:=copy(st,1,pos(' ',st)-1);
fillchar(map,sizeof(map),false);
for i:=1 to m do
begin
readln(j,k);
map[j,k]:=true;
end;
for k:=0 to 9 do
for i:=0 to 9 do
for j:=0 to 9 do
map[i,j]:=map[i,j] or (map[i,k] and map[k,j]);
for i:=0 to 9 do map[i,j]:=true;
fillchar(change,sizeof(change),0);
for i:=0 to 9 do
for j:=0 to 9 do
if map[i,j] then inc(change[i]);
fillchar(a,sizeof(a),0);
hp;
for i:=a[0] downto 1 do write(a[i]);
writeln;
end.
为什么全是错误答案?