Problem:
スピードスケートバッジテスト

スピードスケートバッジテストでは、2 種類の距離で規定されたタイムを上回った場合に級が認定されます。例えば A 級になるには 500 M で 40.0 秒未満、かつ 1000 M で 1 分 23 秒未満であることが求められます。

スピードスケート大会 (500 M と 1000 M) で記録したタイムを入力とし、スピードスケートバッジテストで何級に相当するかを出力するプログラムを作成して下さい。500 M と1000 M のバッジテスト規定タイムは下表のとおりです。 E 級に満たなかった場合には、NA と出力してください。

500 M

1000 M

AAA 級

35 秒 50

1 分 11 秒 00

AA 級

37 秒 50

1 分 17 秒 00

A 級

40 秒 00

1 分 23 秒 00

B 級

43 秒 00

1 分 29 秒 00

C 級

50 秒 00

1 分 45 秒 00

D 級

55 秒 00

1 分 56 秒 00

E 級

1分10 秒 00

2 分 28 秒 00

Input

複数のデータセットが与えられます。各データセットとして、500 M タイムと 1000 M タイムをそれぞれ表す実数 t1, t2 (8.0 ≤ t1, t2 ≤ 360.0) が空白区切りで与えられます。t1, t2 は秒単位で小数点以下最大 2 桁までの数字を含む実数で与えられます。

データセットの数は 100 を超えません。

Output

各データセットごとに、判定結果 AAA ~ E または NA を１行に出力してください。

Sample Input

40.0 70.0
72.5 140.51

Output for the Sample Input

B
NA

Solution in JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	static final String[] timeClass = { "AAA", "AA", "A",
			"B", "C", "D", "E", "NA" };
	static final double[][] timeTable = {
			{ 35.5, 71.0 }, // AAA
			{ 37.5, 77.0 }, // AA
			{ 40.0, 83.0 }, // A
			{ 43.0, 89.0 }, // B
			{ 50.0, 105.0 }, // C
			{ 55.0, 116.0 }, // D
			{ 70.0, 148.0 } // E
	};

	public static void main(String[] args)
			throws IOException {
		BufferedReader br = new BufferedReader(
				new InputStreamReader(System.in));
		String buf = null;
		while ((buf = br.readLine()) != null) {
			String[] time = buf.split(" ");
			System.out.println(judgeClass(
					Double.parseDouble(time[0]),
					Double.parseDouble(time[1])));
		}
	}

	public static String judgeClass(double timeOf500m,
			double timeOf1000m) {
		// 500m比較
		for (int timeClassOf500m = 0; timeClassOf500m < timeTable.length; timeClassOf500m++) {
			// 500mテーブル未満のとき
			if (timeOf500m < timeTable[timeClassOf500m][0])
				// 1000mテーブル比較
				for (int timeClassOf1000m = timeClassOf500m; timeClassOf1000m < timeTable.length; timeClassOf1000m++) {
					if (timeOf1000m < timeTable[timeClassOf1000m][1]) {
						return timeClass[timeClassOf1000m];
					}
				}
		}
		return timeClass[timeClass.length - 1];
	}
}