Pagini recente » Cod sursa (job #70548) | Cod sursa (job #1355189) | Cod sursa (job #1021028) | Cod sursa (job #2828542) | Cod sursa (job #591883)
Cod sursa(job #591883)
program p_VL_082;
var c:array[0..2000,0..2000]of longint;f,g:text;
viz:array[0..2000]of 0..1;
n,dmin,vfmin,k,j,i,cost:longint;
d:array[0..2000]of longint;
pre:array[0..2000]of integer;
c2:array[1..100]of integer;
procedure citire;
var i,j,m,x,y,c1:longint;
begin
read(f,n,m);
read(f,k);
for i:=1 to k do read(f,c2[i]);
for i:=1 to n do
for j:=i+1 to n do begin
c[i,j]:=100020;
c[j,i]:=100020;
end;
for i:=1 to m do begin
read(f,x,y,c1);
c[x,y]:=c1;
c[y,x]:=c1;
end;
for i:=1 to n do begin
d[i]:=c[1,i];
pre[i]:=1;
end;
pre[1]:=0;
viz[1]:=1;
end;
begin
assign(f,'ubuntzei.in');reset(f);
assign(g,'ubuntzei.out');rewrite(g);
citire;
for j:=1 to n-1 do begin
dmin:=100020;
for i:=1 to n do
if (viz[i]=0)and(dmin>d[i]) then begin
dmin:=d[i];
vfmin:=i;
end;
viz[vfmin]:=1;
for i:=1 to n do
if (viz[i]=0)and(d[i]>dmin+c[vfmin,i]) then begin
pre[i]:=vfmin;
d[i]:=dmin+c[vfmin,i];
end;
end;
write(g,d[n]);
close(f);close(g);
end.