hihoCoder 1255 Mysterious Antiques in Sackler Museum(水)

来源:互联网 发布:go并发编程实战 微盘 编辑:程序博客网 时间:2024/05/16 07:06

题目连接:hihoCoder 1255 Mysterious Antiques in Sackler Museum

代码

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 10;int X[maxn], Y[maxn];bool solve(int* x, int* y) {    if (x[0] == x[1] && x[1] == x[2]) return true;    //if (y[0] == y[1] && y[1] == y[2]) return true;    if (x[0] + x[1] == x[2] && y[0] == y[1]) return true;    return false;}bool judge () {    int tmpx[maxn], tmpy[maxn];    for (int i = 0; i < 4; i++) {        tmpx[0] = X[i];        tmpy[0] = Y[i];        for (int j = 0; j < 4; j++) {            if (i == j) continue;            tmpx[1] = X[j];            tmpy[1] = Y[j];            for (int k = 0; k < 4; k++) {                if (k == i || k == j) continue;                tmpx[2] = X[k];                tmpy[2] = Y[k];                for (int s = 0; s < 8; s++) {                    for (int t = 0; t < 3; t++) if (s&(1<<t)) swap(tmpx[t], tmpy[t]);                    if (solve(tmpx, tmpy)) return true;                    for (int t = 0; t < 3; t++) if (s&(1<<t)) swap(tmpx[t], tmpy[t]);                }            }        }    }    return false;}int main () {    int cas;    scanf("%d", &cas);    while (cas--) {        for (int i = 0; i < 4; i++) scanf("%d%d", &X[i], &Y[i]);        printf("%s\n", judge() ? "Yes" : "No");    }    return 0;}
0 0
原创粉丝点击