讨论 / 各位帮我看看
OI帝国 2010-08-17 01:22:00
点我顶贴 收藏 删除
var n,m,i,j,k,l:longint;

a:array[0..1000]of longint;

b:array[0..500,0..500]of longint;

begin

readln(n,m);

fillchar(b,sizeof(b),maxint);

for i:=1 to m do b[i,i]:=0;

for i:=1 to n do

begin

k:=0;

fillchar(a,sizeof(a),0);

while not(eoln) do begin inc(k);read(a[k]);end;

for j:=1 to k-1 do

for l:=j+1 to k do b[a[j],a[l]]:=1;

end;

for k:=1 to m do

for i:=1 to m do

for j:=1 to m do

if b[i,k]+b[k,j]<b[i,j] then b[i,j]:=b[i,k]+b[k,j];

if abs(b[1,m])<maxint then write(b[1,m]-1) else write(’NO’);

end.

0分

#1 鸣船劲航@2010-08-17 01:22:00
回复 删除
回复 楼主OI帝国 的帖子

应该在while not(eoln) do begin inc(k);read(a[k]);end;

这句后面加上readln;

查看更多回复
提交回复