UVa 10167Birthday Cake

来源:互联网 发布:网络推广专员的职责 编辑:程序博客网 时间:2024/05/18 01:17
/*    思路:简单枚举    外层加了层循环,改变斜率的变化率(从大到小),使AC时间由原来0.082减至 0.009S*/#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAX = 50*2+5;int X[MAX];int Y[MAX];int N;void solve(){    int sum;    int cnt;    int found;    for(int gap=500; gap; gap/=2)    {        for(int A=-500; A<=500; A+=gap) {            for(int B=-500; B<=500; B+=gap) {                cnt = 0;                found = true;                for(int i=0; i<2*N; i++) {                    sum = A*X[i] + B*Y[i];                    if(sum == 0) {                        cnt = 0;                        found = false;                        break;                    }else if(sum > 0){                        cnt++;                    }                }                if(found && cnt==N) {                    printf("%d %d\n", A, B);                    return;                }            }        }    }}int main (){    #ifndef ONLINE_JUDGE    freopen("in.txt", "r", stdin);    #endif    while(scanf("%d", &N)==1 && N!=0)    {        for(int i=0; i<2*N; i++) {            scanf("%d %d", &X[i], &Y[i]);        }        solve();    }    return 0;}