记录编号 |
780 |
评测结果 |
AAAAAAAAAA |
题目名称 |
找最佳通路 |
最终得分 |
100 |
用户昵称 |
EnAsn |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.029 s |
提交时间 |
2008-07-22 14:30:52 |
内存使用 |
0.12 MiB |
显示代码纯文本
program ex;
type
ss=array[1..50,1..50]of integer;
sz=array[1..50]of integer;
pd=array[1..50]of boolean;
var
a:ss;
flag:pd;
cost:sz;
f1,f2:text;
i,j,k,min:integer;
n,m,s,e:integer;
procedure init;
var
i,j:integer;
h,t:integer;
begin
assign(f1,'city.in');
assign(f2,'city.out');
reset(f1);
rewrite(f2);
readln(f1,n,m,s,e);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=99;
for i:=1 to m do
begin
readln(f1,h,t);
a[h,t]:=1;
end;
for i:=1 to n do
begin
cost[i]:=a[s,i];
flag[i]:=false;
end;
end;
begin
init;
for k:=1 to n do
begin
min:=99;j:=0;
for i:=1 to n do
if (cost[i]<min)and(flag[i]=false) then
begin
min:=cost[i];
j:=i;
end;
flag[j]:=true;
for i:=1 to n do
if (cost[i]>cost[j]+a[j,i])
and(flag[i]=false)
then
cost[i]:=cost[j]+a[j,i];
end;
writeln(f2,cost[e]+1);
close(f1);
close(f2);
end.