Cod sursa(job #591883)

Utilizator FLORINSTELISTUOprea Valeriu-Florin FLORINSTELISTU Data 25 mai 2011 20:03:05
Problema Ubuntzei Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.39 kb
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.