记录编号 460356 评测结果 AAAAAAAAAA
题目名称 [USACO Mar08] 混乱的齿轮 最终得分 100
用户昵称 Gravatarwhite 是否通过 通过
代码语言 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;
}