诸位大牛帮帮我啊!!!!
这是我悲催的程序
program aa;
var
last:array[1..50000] of longint;
dis:array[1..50000] of qword;
outt,cost,pre:array[1..300000] of longint;
n,m,a,b,i,c,min,sum:longint;
q:array[1..300000] of record
data,step:longint;
end;
procedure spfa;
var
h,t,k,v:longint;
begin
fillchar(dis,sizeof(dis),$3f);
h:=0;
t:=1;
q[1].data:=1;
dis[1]:=0;
min:=maxlongint;
while h<t do
begin
inc(h);
v:=q[h].data;
k:=last[v];
while k<>0 do
begin
if dis[v]+cost[k]<dis[outt[k]] then
begin
dis[outt[k]]:=dis[v]+cost[k];
inc(t);
q[t].data:=outt[k];
q[t].step:=q[h].step+1;
if q[t].data=n then
ifq[t].step<min then min:=q[t].step;
end;
k:=pre[k];
end;
end;
end;
procedure add(a,b,c:longint);
begin
inc(sum);
outt[sum]:=b;
cost[sum]:=c;
pre[sum]:=last[a];
last[a]:=sum;
end;
begin
readln(n,m);
for i:=1to m do
begin
read(a,b,c);
add(a,b,c);
add(b,a,c);
end;
min:=maxlongint;
spfa;
writeln(dis[n],' ',min);
end.