比赛 20111102 评测结果 C
题目名称 麻烦的干草打包机 最终得分 0
用户昵称 TBK 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-02 21:43:45
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;      
int a[1051][3],b,c,d,l,m,n;
double s,r[1051],k;
bool bo[1051]={false};
void gui(int x)
{
	int z;
	if ((a[x][0]==c)&&(a[x][1]==d))
	{
		n=(int)s;
		printf("%d",n);
		exit(0);
	}
	for (z=0;z<b;z++)
		if (bo[z]==false)
			if (pow((double)((pow((double)(a[z][0]-a[x][0]),2))+pow((double)(a[z][1]-a[x][1]),2)),0.5)==a[x][2]+a[z][2])
			{
				bo[z]=true;
				k=(double)((double)a[x][2]/(double)a[z][2]);
				r[z]=k*r[x];
				s+=r[z];
				gui(z);
				s-=r[z];
			}
}
int main(void)      
{         
    freopen("baler.in","r",stdin);      
    freopen("baler.out","w",stdout);       
    scanf("%d %d %d\n",&b,&c,&d);
	for (l=0;l<b;l++) 
	{
		scanf("%d %d %d\n",&a[l][0],&a[l][1],&a[l][2]);
		if ((a[l][0]==0)&&(a[l][1]==0)) m=l;
	}
	bo[m]=true;
	r[m]=10000;
	s=10000;
	gui(m);
    fclose(stdin);
	fclose(stdout);
    return 0;     
}