题意:找出一条直线平分点
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int x[100],y[100];
int main()
{
int n,da,xi,flag,a,b;
while(scanf("%d",&n) && n)
{
flag = 0 ;
for(int i = 0 ; i <2*n ; i++)
{
scanf("%d%d",&x[i],&y[i]);
if(x[i]*x[i]+y[i]*y[i] > 10000)
{
flag = 1;
break;
}
}
if(flag)
break;
for(int A = -500 ; A <= 500 ; A++)
{
for(int B = -500 ; B <= 500 ; B++)
{
flag = 0 ;
da = xi = 0 ;
for(int i = 0 ; i <2*n ; i++) // 在直线上的点是不被我们考虑的
if(A*x[i] + B*y[i] > 0)
da++;
else if(A*x[i] + B*y[i] < 0)
xi++;
if(da == n && xi == n)
{
a = A;
b = B;
flag = 1 ;
break;
}
}
if(flag)
break;
}
printf("%d %d\n",a,b);
}
return 0 ;
}