记录编号 79448 评测结果 AAAAAAAAAA
题目名称 [USACO Mar08] 麻烦的干草打包机 最终得分 100
用户昵称 Gravatar赵赵赵 是否通过 通过
代码语言 Pascal 运行时间 0.026 s
提交时间 2013-11-05 18:56:17 内存使用 2.32 MiB
显示代码纯文本
var
 a:array[0..1060,1..3]of integer;
 b:array[0..1060,0..1060]of integer;
 f,e:array[0..1060]of integer;
 t:array[0..1060]of boolean;
 i,j,k,n,xt,yt,v,be,en:longint;
 ans:real;
 p:boolean;
begin
 assign(input,'baler.in');reset(input);
 assign(output,'baler.out');rewrite(output);
 readln(n,xt,yt);
 for i:=1 to n do
 begin
  readln(a[i,1],a[i,2],a[i,3]);
  if (a[i,1]=xt)and(a[i,2]=yt) then en:=i;
  if (a[i,1]=0)and(a[i,2]=0) then be:=i;
  for j:=1 to i-1 do
   if sqr(a[i,1]-a[j,1])+sqr(a[i,2]-a[j,2])=sqr(a[i,3]+a[j,3]) then
     begin inc(b[j,0]);b[j,b[j,0]]:=i;inc(b[i,0]);b[i,b[i,0]]:=j;end;
 end;
 i:=1;j:=2;f[1]:=en;t[en]:=true;
 e[en]:=en;
 repeat
  p:=false;
  for k:=1 to b[f[i],0] do
  begin
   if p then break;
   if not(t[b[f[i],k]]) then begin
                      f[j]:=b[f[i],k];
                      e[b[f[i],k]]:=f[i];
                      t[b[f[i],k]]:=true;
                      if e[be]>0 then p:=true;
                      inc(j);
                     end;
  end;
  inc(i);
  if p then break;
 until i>=j;
 i:=be;ans:=10000;v:=a[be,3]*10000;
 while e[i]<>i do
 begin
  i:=e[i];
  ans:=ans+v/a[i,3];
 end;
 writeln(ans:0:0);
 close(input);close(output);
end.