Pagini recente » Cod sursa (job #905339) | Cod sursa (job #1222107) | Cod sursa (job #2395781) | Cod sursa (job #2627248) | Cod sursa (job #675222)
Cod sursa(job #675222)
program sss;
type e=record
nod:longint;
cost:integer;
end;
var f,g:text;
n,m,i,j,wnod,wcost,z,y,x,nr,pi,ps:longint;
a:array of array of e;
d:array[1..50005] of integer;
q,v:array[1..1000000] of longint;
begin
assign(f,'dijkstra.in'); reset(f);
assign(g,'dijkstra.out'); rewrite(g);
readln(f,n,m);
setlength(a,n+1);
for i:=1 to n do
setlength(a[i],1);
for i:=1 to m do
begin
readln(f,x,y,z);
setlength(a[x],length(a[x])+1);
a[x,0].nod:=a[x,0].nod+1;
a[x,a[x,0].nod].nod:=y;
a[x,a[x,0].nod].cost:=z;
end;
pi:=1;
ps:=1;
q[ps]:=1;
d[1]:=0;
for i:=2 to n do
d[i]:=maxint;
while ps<=pi do
begin
nr:=q[ps];
ps:=ps+1;
for i:=1 to a[nr,0].nod do
begin
wnod:=a[nr,i].nod;
wcost:=a[nr,i].cost;
if d[wnod]>d[nr]+wcost then
begin
d[wnod]:=d[nr]+wcost;
v[wnod]:=1;
pi:=pi+1;
q[pi]:=wnod;
end;
end
end;
for i:=2 to n do
begin
if d[i]=maxint then
d[i]:=0;
write(g,d[i],' ');
end;
close(f);
close(g);
end.