记录编号 |
31535 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Mar08] 麻烦的干草打包机 |
最终得分 |
100 |
用户昵称 |
TBK |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.085 s |
提交时间 |
2011-11-03 09:44:07 |
内存使用 |
0.33 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstdlib>
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;
}