Pagini recente » Cod sursa (job #3172348) | Cod sursa (job #3176190) | Cod sursa (job #302865) | Cod sursa (job #516991) | Cod sursa (job #1913255)
program bubuntzei;
var f:text;
a:array[1..2000,1..2000] of integer;
d,c,t:array[1..10000] of integer;
s:array[0..10000] of boolean;
m,n,i ,k :integer;
procedure citire;
var f:text;
i,j,x,y,co:integer ;
begin
assign(f,'ubuntzei.in'); reset (f);
readln(f,n,m);
read(f,k);
for i:=1 to k do
read(f,c[i]);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=maxint;
for i:=1 to m do
begin
readln(f,x,y,co);
a[x,y]:=co;
a[y,x]:=co;
end;
close(f);
end;
procedure init;
var i:integer;
begin
for i:=1 to n do
d[i]:=a[1,i];
for i:=1 to n do
if d[i]<maxint then
begin
t[i]:=1;
t[1]:=-1;
end;
s[1]:=true;
for i:=2 to n do
s[i]:=false;
end;
procedure dijkstra;
var
c,i,dmin,k:integer;
begin
for c:=1 to n-1 do
begin
dmin:=maxint;
for i:=1 to n do
if ((d[i]<dmin)and not(s[i])) then
begin
dmin:=d[i];
k:=i;
end;
for i:=1 to n do
if (d[i]>d[k]+a[k,i]) then
begin
d[i]:=d[k]+a[k,i];
t[i]:=k;
end;
s[k]:=true;
end;
end;
begin
citire;
init;
dijkstra;
assign(f,'ubuntzei.out');rewrite(f);
write(f,d[n]);
close(f);
end.