找对称中心所以x轴对称,y轴对称,分别讨论就可以了···
#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int main()
{
int n;
double x[20000],y[20000];
scanf("%d",&n);
for(int i = 0;i<n;i++)
scanf("%lf%lf",&x[i],&y[i]);
sort(x,x+n);
sort(y,y+n);
bool flag = true;
int i = 0,j = n-1;
double p = 0,q = 0;
p = (x[i] + x[j])/2;
q = (y[i] + y[j])/2;
for (i = i+1,j = j-1;i<=j&&flag;i++,j--)
if((p != (x[i] + x[j])/2)||(q != (y[i] + y[j])/2))
flag = false;
if(flag) printf("You put the king at (%.1lf,%.1lf).\n",p,q);
else printf("You can not put the king!\n");
// system("pause");
return 0 ;
}