题意:给出一系列坐标,问他们是否对称
说明:没用STL做的,不知道怎么用STL解决这个问题。
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
struct symmetry{
int x,y;
}sy[1100];
int x[1100];
int main(){
int T,N;
cin >> T;
while(T--){
cin >> N;
for(int i=0;i<N;i++)
{
cin >>sy[i].x>>sy[i].y;
x[i]=sy[i].x;
}
sort(x,x+N);
int mx;
if(N%2) mx=2*x[N/2];
else mx=x[N/2-1]+x[N/2];
int flag=1;
for(int i=0;i<N;i++){
int ok=0;
for(int j=0;j<N;j++){
if((sy[i].x+sy[j].x)==mx &&sy[i].y==sy[j].y)
{ok=1;break;}
}
if(ok==0) {flag=0;break;}
}
if(flag) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}