记录编号 |
79448 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Mar08] 麻烦的干草打包机 |
最终得分 |
100 |
用户昵称 |
赵赵赵 |
是否通过 |
通过 |
代码语言 |
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.