题目大意:给出平面上几个整数坐标问是否能构成正多边形
------因为点都是整数,除了正方形以外别的多边形都不可能构成,所以只需要判断是不是正方形就可以
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 100+10;
int a[maxn],b[maxn];
int l[10];
int main(int argc, char const *argv[])
{
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&a[i],&b[i]);
}
if(n!=4){ printf("NO\n");continue;}
for(int i=0,k=0;i<n;i++){
for(int j=i+1;j<n;j++,k++){
l[k]=(a[i]-a[j])*(a[i]-a[j])+(b[i]-b[j])*(b[i]-b[j]);
}
}
sort(l,l+6);
if(l[0]==l[1]&&l[1]==l[2]&&l[2]==l[3]&&l[4]==l[5]&&l[4]!=l[3])
printf("YES\n");
else printf("NO\n");
}
return 0;
}