记录编号 |
51913 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Mar08] 混乱的齿轮 |
最终得分 |
100 |
用户昵称 |
cstdio |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.012 s |
提交时间 |
2013-01-04 20:07:33 |
内存使用 |
1.44 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
class ROLLER{
public:
int x,y,r;
}whe[1080];
int n,first;
bool bes[1080][1080]={0};//bes=beside
queue<int> s;
void input(void){
scanf("%d",&n);
int i,j;
for(i=0;i<n;i++){
scanf("%d%d%d",&whe[i].x,&whe[i].y,&whe[i].r);
if(whe[i].x==0&&whe[i].y==0) first=i;
for(j=0;j<i;j++){
if((whe[i].x-whe[j].x)*(whe[i].x-whe[j].x)+(whe[i].y-whe[j].y)*(whe[i].y-whe[j].y)==(whe[i].r+whe[j].r)*(whe[i].r+whe[j].r)) bes[i][j]=1,bes[j][i]=1;
}
}
}
int BFS(void){
int p;
int i;
bool visit[1080]={0};
s.push(first);
visit[first]=true;
while(!s.empty()){
p=s.front();
s.pop();
for(i=0;i<n;i++){
if(i==p) continue;
if(bes[i][p]&&!visit[i]) s.push(i),visit[i]=true;
}
};
return p;
}
int main(){
freopen("rollers.in","r",stdin);
freopen("rollers.out","w",stdout);
input();
int ans=BFS();
printf("%d %d",whe[ans].x,whe[ans].y);
return 0;
}