Cod sursa(job #743835)

Utilizator RadioactivMihai Preguza Radioactiv Data 6 mai 2012 15:25:59
Problema Arbore partial de cost minim Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.94 kb
var x,y,z:array[1..400000] of integer;
    n,m,i,j,k,min,cost:longint;
    t:array[1..200000] of longint;
    b:array[1..200000] of boolean;
    bi,bo:array[1..1 shl 17] of char;



procedure initiere;
Begin
  assign(input,'apm.in');
  settextbuf(input,bi);
  reset(input);
  readln(n,m);
  for i:=1 to m do
    readln(x[i],y[i],z[i]);
  close(input);
  for i:=1 to n do
    b[i]:=true;
End;
BEGIN
  initiere;
  cost:=0;
  b[1]:=false;
  for j:=1 to n-1 do
    begin
      min:=maxint;
      for i:=1 to m do
        if (not b[x[i]]) and b[y[i]] then
          if z[i]<min then
            begin
              k:=i;
              min:=z[i]
            end;
      b[y[k]]:=false;
      cost:=cost+z[k];
      t[j]:=k;
    end;
  assign(output,'apm.out');
  settextbuf(output,bo);
  rewrite(output);
  writeln(cost);
  writeln(n-1);
  for i:=1 to n-1 do
  writeln(x[t[i]],' ',y[t[i]]);
  close(output);


END.