记录编号 79030 评测结果 AAAAAAAAAA
题目名称 [USACO Mar08] 麻烦的干草打包机 最终得分 100
用户昵称 Gravatar毕之 是否通过 通过
代码语言 Pascal 运行时间 0.034 s
提交时间 2013-11-04 22:32:57 内存使用 1.24 MiB
显示代码纯文本
var
  n,xt,yt,i,k,k1,s,w,j:longint;jie:real;
  p:array [1..1050,1..1050] of boolean;
  x,y,f,z:array [0..1050] of longint;
  r:array [0..1050] of real;
  p1:array [0..1050] of boolean;
begin
  assign (input,'baler.in');
  assign (output,'baler.out');
  reset (input);rewrite (output);
  fillchar (p,sizeof(p),false);
  fillchar (p1,sizeof(p1),true);
  readln (n,xt,yt);
  for i:=1 to n do
  begin
    readln (x[i],y[i],r[i]);
    if (x[i]=0)and(y[i]=0) then k:=i;
    if (x[i]=xt)and(y[i]=yt) then k1:=i;
  end;
  for i:=1 to n-1 do
  for j:=i+1 to n do
  if sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]))-r[i]-r[j]<=0.000001 then
  begin
    p[i,j]:=true;
    p[j,i]:=true;
  end;
  s:=1;w:=2;z[s]:=k;f[s]:=0;p1[k]:=false;
  while (s<>w)and(p1[k1]) do
  begin
    for i:=1 to n do
    if (p[z[s],i])and(p1[i]) then
    begin
      z[w]:=i;f[w]:=s;p1[i]:=false;
      if i=k1 then break;w:=w+1;
    end;
    s:=s+1;
  end;
  jie:=0;
  while w<>0 do
  begin
   jie:=jie+r[k]*10000/r[z[w]];
   w:=f[w];
  end;
  write (jie:0:0);
  close (input);close (output);
end.