IT民工
加油!

这道题要求我们用一条直线将蛋糕平均分成两半,要求两边的cherrie一样多,

并且不能有cherrie 在直线上,当然也不能在外边,我们直接枚举所有的直线

的系数a,b的可能情况,遇到第一种情况输出即可。

#include<cstdio>
#include<cstring>
#include<cstdlib>

typedef struct coordinate
{
int x, y;
}C;

C co[105];
int N, M;

void cut()
{
int left, right, result;
for( int a = -500; a <= 500; a ++)
for( int b = -500; b <= 500; b ++)
{
left = right = 0;
for( int i = 0; i < M; i ++)
{
result = co[i].x * a + co[i].y * b;
if( result > 0) left ++;
else if( result < 0) right ++;
else break;
if( left == N && right == N)
{
printf( "%d %d\n", a, b);
return;
}
}
}
}

int main()
{
while( scanf( "%d", &N), N)
{
N <<= 1;
M = 0;
for( int i = 0; i < N; i ++)
scanf( "%d%d", &co[i].x, &co[i].y);
for( int i = 0; i < N; i ++)
{
if( co[i].x >= 100 || co[i].x <= -100 || co[i].y <= -100 || co[i].y >= 100)
continue;
co[M ++] = co[i];
}
N = M >> 1;
cut();
}
return 0;
}


 

posted on 2012-01-14 22:18  找回失去的  阅读(300)  评论(0编辑  收藏  举报