比赛 |
20111102 |
评测结果 |
AWWWWWWWWW |
题目名称 |
麻烦的干草打包机 |
最终得分 |
10 |
用户昵称 |
血之侍卫 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-02 21:01:46 |
显示代码纯文本
#include<fstream>
#include<cstdio>
using namespace std;
int n,X,Y,ans;
int ax[1060],ay[1060],ar[1060],v[1060];
bool temp[1060]={true};
bool flag=true;
int abss(int x)
{
if(x<0)
return -x;
return x;
}
void dfs(int j,int t)
{
if(ax[j]==X&&ay[j]==Y&&flag)
{
flag=!flag;
ans=t;
}
if(flag)
{
for(int i=j;i<n;i++)
{
if(abss(ax[j]-ax[i])*abss(ax[j]-ax[i])+abss(ay[j]-ay[i])*abss(ay[j]-ay[i])==(ar[i]+ar[j])*(ar[i]+ar[j]))
{
v[i]=v[j]*double(ar[j])/double(ar[i]);
dfs(i,t+v[i]);
}
}
}
}
int main()
{
ifstream fin("baler.in");
ofstream fout("baler.out");
fin>>n>>X>>Y;
int zan;
for(int i=0;i<n;i++)
{
fin>>ax[i]>>ay[i]>>ar[i];
if(ax[i]==0&&ay[i]==0)
{
zan=i;
temp[i]=false;
}
}
v[zan]=10000;
dfs(zan,10000);
fout<<ans;
return 0;
}