UVA 10167 Birthday Cake

来源:互联网 发布:gif压缩 知乎 编辑:程序博客网 时间:2024/05/22 14:21

UVA 10167 Birthday Cake

题目大意:给出几个坐标点,要求Ax+By = 0(-100 <= A/B <= 100)能将坐标点对半分

解题思路:枚举全部情况,直到能够分开为止

#include <stdio.h>#include <iostream>using namespace std;int n;int point[110][2];int num;void pro() {    int p, q;    for(int i = -100; i <= 100; i++)        for(int j = -100; j <= 100; j++) {            p = 0;            q = 0;            for(int k = 0; k < num; k++) {                if(point[k][0] >= -500 && point[k][1] >= -500 && point [k][0] <= 500 && point[k][1] <= 500) {                    if(point[k][0] * i + point[k][1] * j > 0)                        p++;                    else if(point[k][0] * i + point[k][1] * j < 0)                        q++;                    else                        break;                    if(q == p && q == num/2) {                        printf("%d %d\n", i, j);                        return;                    }                }            }        }}int main() {    while(cin >> n && n) {        int x, y;        num = 0;        for(int i = 0; i < 2 * n; i++) {            cin >> point[num][0] >> point[num][1];            num++;        }        pro();    }    return 0;}
0 0
原创粉丝点击