Pagini recente » Cod sursa (job #2376426) | Cod sursa (job #1163013) | Cod sursa (job #2884852) | Cod sursa (job #318577) | Cod sursa (job #629253)
Cod sursa(job #629253)
Program dijkstra;
type tip=record
x,y,t:longint;
end;
var a:array [0..250000] of tip;
v:array [0..55000] of longint;
b1,b2:array [1..1 shl 17] of char;
n,m,i:longint;
ok:boolean;
fi,fo:text;
begin
assign(fi,'dijkstra.in');
assign(fo,'dijkstra.out');
settextbuf(fi,b1);
settextbuf(fo,b2);
reset(fi); rewrite(fo);
readln(fi,n,m);
for i:=0 to m-1 do readln(fi,a[i].x,a[i].y,a[i].t);
for i:=0 to n+2 do v[i]:=-1;
v[1]:=0; ok:=true;
while ok do begin
ok:=false;
for i:=0 to m-1 do
if (v[a[i].x]<>-1) and ((v[a[i].y]=-1) or (v[a[i].y]>v[a[i].x]+a[i].t)) then
begin
v[a[i].y]:=v[a[i].x]+a[i].t;
ok:=true;
end;
end;
for i:=2 to n do
if v[i]=-1 then write(fo,'0',' ')
else write(fo,v[i],' ');
close(fo);
end.