2460 Brownie Points I

問題概要

n個の点がある。
n/2番目の点を通り、x軸およびy軸に平行な直線を引く。
この直線により平面を4つに分けるとき、第一第三象限の点の数、第二第四象限の点の個数を求めよ。

解法

問題文がわかりにくいが、n/2番目の点を通るように直線を引けばよいらしい。

ソースコード

int n,X[200000],Y[200000];

int main(){
	while(scanf("%d",&n),n){
		int a=0,b=0,x,y;
		rep(i,n)scanf("%d%d",X+i,Y+i);
		x=X[n/2]; y=Y[n/2];
		rep(i,n){
			if(X[i]>x&&Y[i]>y||X[i]<x&&Y[i]<y)a++;
			if(X[i]>x&&Y[i]<y||X[i]<x&&Y[i]>y)b++;
		}
		printf("%d %d\n",a,b);
	}
	return 0;
}