比赛 20091111 评测结果 AEWWWWWWWE
题目名称 建造路径 最终得分 10
用户昵称 SMXX 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2009-11-11 10:06:42
显示代码纯文本
program df;
var
f1,f2:text;
a:array[1..1000,1..1000]of double;
f:array[1..1000,1..2]of integer;
n,m,x,y,i,j,t:integer;
sum,s:double;
begin
assign(f1,'roads.in');
assign(f2,'roads.out');
reset(f1);
rewrite(f2);
readln(f1,n,m);
sum:=0;
for i:= 1to n+1 do
  for j:= 1to n+1 do a[i,j]:=0;
for i:=1 to n do readln(f1,f[i,1],f[i,2]);
for i:= 1to m do begin
                   readln(f1,j,t);
     a[j,t]:=-1;a[t,j]:=-1;
      end;
for i:= 1to n do begin
    s:=-1;
for j:= 1to n do begin
     if i=j then a[i,j]:=-2
             else begin
             if a[i,j]=0 then begin
     a[i,j]:=(f[i,1]-f[j,1])*(f[i,1]-f[j,1])+(f[i,2]-f[j,2])*(f[i,2]-f[j,2]);
     a[j,i]:=a[i,j];end;

     if (s=-1)and(i<>j) then s:=a[i,j]
                else if (a[i,j]<s)and(a[i,j]<>-2) then begin s:=a[i,j];x:=i;y:=j;end;
                end;
                end;
     if s>0 then begin sum:=sum+sqrt(s);a[x,y]:=-1;a[y,x]:=-1;end;
     end;
writeln(f2,sum:0:2);
close(f1);
close(f2);
end.