Bai_R_X
2025-01-13 15:19:31
我们首先需要求出
于是乎我们观察题面,可以得知每条边至少有
其实我们也用不到这个特殊性质,因为正方形有
所以我们可以用一个桶来记录边上有多少个点,然后枚举边,如果边上点数大于
最后再枚举每个点是否在边上。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x[45],y[45],minx=INT_MAX,maxx=INT_MIN,miny=INT_MAX,maxy=INT_MIN,i,j,hx[55],hy[55];
signed main()
{
cin>>n;
for(i=1;i<=4*n+1;i++)
{
cin>>x[i]>>y[i];
hx[x[i]]++;
hy[y[i]]++;
}
for(i=0;i<=50;i++)
{
if(hx[i]>1)
{
minx=min(minx,i);
maxx=max(maxx,i);
}
}
for(i=0;i<=50;i++)
{
if(hy[i]>1)
{
miny=min(miny,i);
maxy=max(maxy,i);
}
}
for(i=1;i<=4*n+1;i++)
{
if((x[i]<minx||x[i]>maxx)||(y[i]<miny||y[i]>maxy||(y[i]>miny&&y[i]<maxy&&(x[i]>minx&&x[i]<maxx))))
{
cout<<x[i]<<" "<<y[i];
break;
}
}
return 0;
}