不用判断在左边还是右边,只用判断代入式子后,分三类:大于0,小于0,等于0即可。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
const int maxn=110;
int X[maxn],Y[maxn];
int main()
{
#ifndef ONLINE_JUDGE
freopen("10167.txt","r",stdin);
#endif
int n;
while(scanf("%d",&n)==1 && n)
{
int a,b,i;
for(i=0;i<2*n;i++)
scanf("%d%d",&X[i],&Y[i]);
//for(i=0;i<2*n;i++) printf("%d %d\n",X[i],Y[i]);
for(a=-500;a<=500;a++)
for(b=-500;b<=500;b++)
{
//printf("a=%d b=%d\n",a,b);
int ok=1,big=0,small=0,equal=0;
for(i=0;i<2*n;i++)
{
int s=a*X[i]+b*Y[i];
if(s>0) big++;
else if(s<0) small++;
else equal++;
if(big>n || small>n || equal>0)
{
ok=0;break;
}
}
if(ok && small==big)
goto print_ans;
}
print_ans: printf("%d %d\n",a,b);
}
return 0;
}