记录编号 10005 评测结果 AAAAAAAATT
题目名称 公路修建 最终得分 80
用户昵称 Gravatarlc 是否通过 未通过
代码语言 Pascal 运行时间 3.253 s
提交时间 2009-04-23 18:24:29 内存使用 0.23 MiB
显示代码纯文本
program day3_2;
  const
    maxn=5000;
    Inf=100000000;
  var
       n:       longint;
       ans:     real;
       x,y:     array[1..maxn] of real;
       dist:    array[1..maxn] of real;
       mark:    array[1..maxn] of boolean;


  function dis(a,b:longint):real;
     var
         result :real;
    begin
      result :=sqrt( sqr(x[a]-x[b]) + sqr(y[a]-y[b]) );
      exit(result);
    end;

  procedure Init;
    var
         i,j:   longint;
    begin
      readln(n);
      for i :=1 to n do readln(x[i],y[i]);
    end;

  procedure Main;
    var
        i,j,k:    longint;
        min:    real;

    begin
      for i :=1 to n do dist[i] :=Inf; dist[1] :=0;
      for i :=1 to n do begin
          min :=Inf;
          for j :=1 to n do  if (not mark[j]) and (dist[j]<min)
              then begin min :=dist[j]; k :=j; end;
          ans :=ans+dist[k]; mark[k] :=true;
          for j :=1 to n do if dis(k,j) <dist[j]
              then dist[j] :=dis(k,j);
          end;
      writeln(ans:0:2);
    end;


  begin
    assign(input,'roadz.in'); reset(input);
    assign(output,'roadz.out'); rewrite(output);
    Init;
    Main;
    close(input); close(output);
  end.