比赛 |
20111102 |
评测结果 |
AWWWWWWWWW |
题目名称 |
麻烦的干草打包机 |
最终得分 |
10 |
用户昵称 |
magic |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-02 20:43:45 |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,xt,yt,m;
double ans;
//const double maxlong=10000000;
int xi[2000],yi[2000],ri[2000];
bool flag[2000];
int head,tail,u;
bool pd(int p,int q);
bool pd(int p,int q)
{
int l,r;
r=ri[p]+ri[q];
l=(xi[p]-xi[q])*(xi[p]-xi[q])+(yi[p]-yi[q])*(yi[p]-yi[q]);
if (l<=r*r)
{
return 1;
}
else return 0;
}
void dfs(int p,double value);
void dfs(int p,double value)
{
if (p==m)
{
printf("%0.0lf",ans);
}
if (p!=m)
{
for (int i=1;i<=n;i++)
{
if (pd(p,i)&&!flag[i])
{
flag[i]=1;
ans+=value*ri[p]/ri[i];
dfs(i,value*ri[p]/ri[i]);
ans-=value*ri[p]/ri[i];
flag[i]=0;
}
}
}
}
int main()
{
freopen("baler.in","r",stdin);
freopen("baler.out","w",stdout);
scanf("%d%d%d",&n,&xt,&yt);
for (int i=1;i<=n;i++)
{
scanf("%d%d%d",&xi[i],&yi[i],&ri[i]);
if (xi[i]==xt&&yi[i]==yt)
{
m=i;
}
}
flag[1]=1;
ans+=10000;
dfs(1,10000);
return 0;
}