AOJ_0107 Carry a Cheese
問題
解法
直方体の3種類の大きさの面のうち、いづれかが穴の中に収まるなら、
その直方体は穴を通り抜けられる。
穴の半径をR,面の縦の長さをa,面の横の長さをbとすると
面が穴に収まるかの判定は、三平方の定理を用いて、
(2R)^2 > a^2 + b^2
をみたすかどうか調べればよい。
#include <cstdio> using namespace std; int N, R, a[3]; bool c(){ for(int i = 0; i < 3; i++) if(4*R*R > a[i] * a[i] + a[(i+1)%3] * a[(i+1)%3]) return true; return false; } int main(){ while(scanf("%d %d %d",&a[0],&a[1],&a[2]) &&a[0]&&a[1]&&a[2]){ scanf("%d", &N); for(int i = 0; i < N; i++){ scanf("%d", &R); if(c()) printf("OK\n"); else printf("NA\n"); } } return 0; }