比赛 2024国庆练习1 评测结果 AWAWWWWAWW
题目名称 混乱的齿轮 最终得分 30
用户昵称 会挽弯弓满月 运行时间 0.046 s
代码语言 C++ 内存使用 3.55 MiB
提交时间 2024-10-04 15:55:47
显示代码纯文本
#include <bits/stdc++.h> 
#define ll long long
const int N=1090;
using namespace std;
void read(ll &x) 
{
	x=0;
	ll f=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		x=x*10+c-'0';
		c=getchar();
	}
	x*=f;
}
ll n;
struct node
{
	ll x,y,r,next;
	bool v;
}a[N];
ll t,k;
bool op;
bool cmp(node a,node b)
{
	if(a.x!=b.x) return a.x<b.x;
	return a.y<b.y;
}
int main()
{
	freopen("rollers.in","r",stdin);
	freopen("rollers.out","w",stdout);
	read(n);
	for(int i=1;i<=n;i++)
	{
		read(a[i].x);read(a[i].y);read(a[i].r);
		if(a[i].x==0&&a[i].y==0) t=i;
	}
	swap(a[1],a[t]);
	sort(a+2,a+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			t=abs(a[i].x-a[j].x);
			t*=t;
			k=abs(a[i].y-a[j].y);
			k*=k;
			t+=k;
			t=sqrt(t);
			k=a[i].r+a[j].r;
			if(t==k&&!a[j].v&&a[j].next!=i)
			{
				a[i].next=j;
				a[j].v=1;
			}
		}
	}
	for(int i=n;i>=1;i--)
	{
		if(a[i].next==0)
		{
			op=0;
			for(int j=1;j<=n;j++)
			{
				if(a[j].next==i)
				{
					op=1;
					break;
				}
			}
			if(op)
			{
				t=i;
				break;
			}
		}
	}
	printf("%lld %lld",a[t].x,a[t].y);
	return 0;
}