Cod sursa(job #882401)

Utilizator yngoMarc Paul yngo Data 19 februarie 2013 08:20:42
Problema Arbore partial de cost minim Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.13 kb
program apm;
type element=record
x1,x2:integer;
end;
var f,g:text;
c:array[1..800,1..800] of integer;
c1,c2,c3,sum,nr,n,m,min,k,i,j,j2:integer;
s:array[1..800]of integer;
w:array[1..800] of element;
begin
  assign(f,'apm.in'); reset(f);
  assign(g,'apm.out'); rewrite(g);
    readln(f,n,m); sum:=0; nr:=0;  j2:=0;
    for i:=1 to m do
     begin
       readln(f,c1,c2,c3);
       c[c1,c2]:=c3;
       c[c2,c1]:=c3;
     end;
     for i:=2 to n do
       s[i]:=1;
     for k:=1 to n-1 do
       begin
         min:=maxint;
         for i:=1 to n do
           if s[i]<>0 then
             if min>c[s[i],i] then
               begin
                 min:=c[s[i],i];
                 j:=i;
               end;

               sum:=sum+c[j,s[j]];
               nr:=nr+1;
               w[nr].x1:=s[j];
               w[nr].x2:=j;
             for i:=1 to n do
               if (s[i]=1) and (c[i,s[i]]>c[i,j]) then
               s[i]:=j;
             s[j]:=0;
       end;
       writeln(g,sum);
       writeln(g,nr);
       for i:=1 to nr do
         writeln(g,w[i].x1,' ',w[i].x2);
  close(f); close(g);
end.