AOJ0107 Carry a Cheese
問題リンク Carry a Cheese
- 解法
直方体は回転させてみればただの長方形になります。直方体なので3種類の長方形にすることができます。この長方形が円形の入り口に入るかどうかは、対角線が円の直径より短いかどうかでわかります。つまり、入力で縦横高さの情報を貰ったら、3種類の対角線の長さを三平方の定理で求めて最小値を求めます。円の直径よりこの最小値が真に小さければチーズを通すことができます。
- ソース
import java.util.Scanner; //Carry a Cheeze public class AOJ0107 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); if(a==0&&b==0&&c==0)break; double da = Math.sqrt(a*a+b*b); double db = Math.sqrt(b*b+c*c); double dc = Math.sqrt(a*a+c*c); double min = da; if(db < min)min = db; if(dc < min)min = dc; int t = sc.nextInt(); while(t--!=0){ int r = sc.nextInt()*2; System.out.println(min<r?"OK":"NA"); } } } }