/*
判斷點是否在線上,或者在線的上方或下方
然後去統計全部的點數
如果一樣多就OK
Run time: 0.230
*/
#include <stdio.h>
void choose(int *arr[2], int N);
bool test(int A, int B, int *arr[2], int N);
int main()
{
int N;
int i;
while (scanf("%d", &N))
{
if (!N) break;
int **arr = new int*[2*N];
for ( i = 0; i < 2*N; i++)
arr[i] = new int[2];
for ( i = 0; i < 2*N; i++)
scanf("%d%d", &arr[i][0], &arr[i][1]);
choose(arr, N);
}
return 0;
}
void choose(int *arr[2], int N)
{
int i, j;
int a, b;
for ( i = -500; i <= 500; i++)
for ( j = -500; j <= 500; j++)
if (test(i, j, arr, N))
return;
}
bool test(int A, int B, int *arr[2], int N)
{
int i, j;
int result;
int positive = 0;
int negative = 0;
for ( i = 0; i < 2*N; i++)
{
result = A*arr[i][0] + B*arr[i][1];
if (result > 0)
positive++;
else
if (result < 0)
negative++;
else
return false;
}
if (positive == negative)
{
printf("%d %d\n", A, B);
return true;
}
return false;
}
2009年2月24日 星期二
Q10167: Birthday Cake
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言