페이지

7687번: 지구 직육면체설

https://www.acmicpc.net/problem/7687

#include<cstdio>
#include<algorithm>
using namespace std;
int a, b, c, x, y, z;
int main() {
    while (scanf("%d%d%d%d%d%d", &a, &b, &c, &x, &y, &z), a) {
        if (!x || !y || !z) {
            printf("%d\n", x*x + y*y + z*z);
        }
        else {
            int t = 1e9;
            if (a == x) {
                t = min({ t,(x + y)*(x + y) + z*z,(x + z)*(x + z) + y*y });
                t = min({ t,(c + y)*(c + y) + (a + c - z)*(a + c - z),(b + z)*(b + z) + (a + b - y)*(a + b - y) });
            }
            if (b == y) {
                t = min({ t,(x + y)*(x + y) + z*z,(y + z)*(y + z) + x*x });
                t = min({ t,(a + z)*(a + z) + (b + a - x)*(b + a - x),(c + x)*(c + x) + (b + c - z)*(b + c - z) });
            }
            if (c == z) {
                t = min({ t,(z + y)*(z + y) + x*x,(x + z)*(x + z) + y*y });
                t = min({ t,(a + y)*(a + y) + (c + a - x)*(c + a - x),(b + x)*(b + x) + (c + b - y)*(c + b - y) });
            }
            printf("%d\n", t);
        }
    }
    return 0;
}

댓글 없음 :

댓글 쓰기