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 C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication11 {
    class Program {
        readonly double[] stdOn500 = new double[]{35.5,37.5,40, 43,50,55,70};
        readonly double[] stdOn1000 = new double[] { 71, 77, 83, 89, 105, 116, 148 };
        readonly string[] rank = new string[]{"AAA" ,"AA" ,"A","B","C","D","E","NA"};

        static void Main(string[] args) {
            new Program().solve();
        }

        void solve() {
            while (true) {
                string input = Console.ReadLine();
                if (string.IsNullOrEmpty(input)) {
                    return;
                }
                double[] times = new double[2];
                for (int i = 0; i < times.Length; i++) {
                    times[i] = double.Parse(input.Split(' ')[i]);
                }
                int numRank = judgeTime(times);
                Console.WriteLine(rank[numRank]);
            }
        }

        int judgeTime(double[] input) {
            for (int i = 0; i < rank.Length - 1; i++) {
                if (input[0] < stdOn500[i] && input[1] < stdOn1000[i]) {
                    return i;
                }
            }
            return rank.Length - 1;
        }
    }
}