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