motu*2

DIV1目指して問題を解き続ける

AOJ 0107 Carry a Cheese

概要

立方体の縦、横、高さの長さが与えられる。
この立方体を半径rの円に接さないように通すことができるか。

解法

立方体の面の対角線が一番小さくなるように向けたとき、
対角線 / 2 が r より小さくなるなら接さない。

コード

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int x, y, h, n, r;
    while (1) {
        cin >> x >> y >> h;
        if (x == 0 && y == 0 && h == 0) break;
        int dia = min(min(x * x + y * y, x * x + h * h), y * y + h * h);
        cin >> n;
        for (int i = 0; i < n; i++) {
            cin >> r;
            cout << ((dia < r*r*4) ? "OK" : "NA") << endl;
        }
    }
    return 0;
}