记录编号 |
460356 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Mar08] 混乱的齿轮 |
最终得分 |
100 |
用户昵称 |
white |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.005 s |
提交时间 |
2017-10-16 21:22:38 |
内存使用 |
0.33 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <iomanip>
#include <string.h>
#include <queue>
#include <algorithm>
#include <math.h>
using namespace std;
int n;
int a,b,c;
struct node{
int x;
int y;
int r;
bool flag;
}loop[1200];
queue <node> q;
node bfs(){
node ans;
while(!q.empty())
{
node now;
now=q.front();
for(int j=1;j<=n;j++)
{
if(loop[j].flag==true)
{
a=loop[j].x-now.x;
b=loop[j].y-now.y;
c=loop[j].r+now.r;
if(sqrt(float(a*a+b*b))==c)
{
loop[j].flag=false;
q.push(loop[j]);
ans=loop[j];
break;
}
}
}
q.pop();
}
return ans;
}
int main(){
freopen("rollers.in","r",stdin);
freopen("rollers.out","w",stdout);
cin>>n;
int k;
for(int i=1;i<=n;i++)
{
cin>>loop[i].x>>loop[i].y>>loop[i].r;
if(loop[i].x==0&&0==loop[i].y)
k=i;
loop[i].x+=5000;
loop[i].y+=5000;
loop[i].flag=true;
}
q.push(loop[k]);
loop[k].flag=false;
node BBQ=bfs();
cout<<BBQ.x-5000<<' '<<BBQ.y-5000;
return 0;
}