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
16818
回复
删除
回复 楼主OI帝国 的帖子
应该在while not(eoln) do begin inc(k);read(a[k]);end;
这句后面加上readln;