Pagini recente » Cod sursa (job #3188050) | Cod sursa (job #478172) | Cod sursa (job #342996) | Cod sursa (job #2940276) | Cod sursa (job #245462)
Cod sursa(job #245462)
program dijksctra;
type t1=array[1..10000, 1..3] of longint; t2=array[1..10000] of integer;
t3=array[1..10000] of longint;
var G:t1; stare,sursa:t2; dist:t3;
fin,i,j,nn,start,lung,finish,n,min,num,p,cer:longint;
f,g1:text;
begin
assign(f, 'dijkstra.in');
assign(g1, 'dijkstra.out');
reset(f);
rewrite(g1);
readln(f,nn, n);
start:=1;
for i:=1 to n do
readln(f, G[i,1], G[i,2], G[i,3]);
stare[start]:=1;
sursa[start]:=1;
for i:=1 to nn do dist[i]:=maxint;
dist[start]:=0;
for fin:=1 to nn do
begin
num:=start;
min:=maxint;
for i:=1 to nn do
if stare[i]=1 then
if dist[i]<=min then
begin
min:=dist[i];
num:=i;
end;
for i:=1 to n do
for j:=1 to 2 do
if G[i,j]=num then
begin
if j=2 then p:=1 else p:=2;
if stare[G[i,p]]=2 then break;
if dist[G[i,p]]>dist[num]+G[i,3] then
begin
dist[G[i,p]]:=dist[num]+G[i,3];
sursa[G[i,p]]:=G[i,j];
stare[G[i,p]]:=1;
end;
end;
stare[num]:=2;
end;
for finish:=2 to nn do
write(g1, dist[finish], ' ');
close(g1); close(f);
end.