#include <stdio.h> #define MAXN 100+5 int main(){ int x[MAXN],y[MAXN]; int i,n; int A,B; int P,N,sign; //freopen("data","r",stdin); while(scanf("%d",&n)&&n){ for(i=0;i<2*n;i++) scanf("%d%d",&x[i],&y[i]); sign=0; for(A=-500;A<=500;A++){ for(B=-500;B<=500;B++){ P=N=0; for(i=0;i<2*n;i++){ if(A*x[i]+B*y[i]==0)//樱桃在分界线上舍去 break; else if(A*x[i]+B*y[i]<0)//根据表达式求出结果的正负,即可判断位于分界线的哪一侧 N++; else P++; if(N>n||P>n) break; } if(N==n&&P==n) break; } if(N==n&&P==n) break; } printf("%d %d\n",A,B); } return 0; }
原文地址:http://blog.csdn.net/u011915301/article/details/38960161