比赛 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;
}