Problem:
時計の短い針と長い針

原始スローライフ主義組織「アカルイダ」から、いたずらの予告状が届きました。アカルイダといえば、要人の顔面にパイを投げつけたりするいたずらで有名ですが、最近では火薬を用いてレセプション会場にネズミ花火をまき散らすなど、より過激化してきました。予告状は次の文面です。

---パソコン ヒトの時間を奪う。良くない。
時計の短い針と長い針 出会うころ、アカルイダ 正義行う。
スローライフ 偉大なり。

たどたどしくてよく解らないのですが、時計の短針と長針とが重なったころにいたずらを決行するという意味のようです。

このいたずらを警戒するため、時刻を入力として、短針と長針が近い場合は "alert"、遠い場合は "safe"、それ以外の場合は "warning" と出力するプログラムを作成してください。ただし、「近い」とは短針と長針の角度が 0° 以上 30° 未満の場合をいい、「遠い」とは 90° 以上 180° 以下の場合をいいます。なお、時刻は 00:00 以上 11:59 以下とします。

Input

入力は以下の形式で与えられます。

n
hh1:mm1
hh2:mm2
:
hhn:mmn

1 行目に判定する時刻の個数 n（1 ≤ n ≤ 10000）、2 行目以降に i 番目の時刻 hhi:mmi がそれぞれ１行に与えられます。

Output

i 番目の時刻の判定結果 safe、warning、または alert を順番にそれぞれ１行に出力してください。

Sample Input

4
02:15
06:01
11:55
10:40

Output for the Sample Input

alert
safe
alert
warning

Solution in C# (judge verdict: Accepted)

using System;

namespace AOJ.Volume1
{
    public class ClockShortHandAndLongHand
    {
        public static int Main()
        {
            int n = int.Parse(Console.ReadLine());
            for (int i = 0; i < n; i++)
            {
                var input = Console.ReadLine().Split(':');
                int hour = int.Parse(input[0]);
                int minute = int.Parse(input[1]);

                // 00:00を長針、短針とも0度とする
                // 短針(hour)の角度→1時間に30度、1分に0.5度進む
                double sh = (hour * 30) + (minute * 0.5);
                // 長針(minute)の角度→1分に6度進む
                double lg = minute * 6;

                double dig = Math.Abs(sh - lg);
                // 180度を超えている場合は補正
                if (dig > 180) { dig = 360 - dig; }

                if (dig < 30) { Console.WriteLine("alert"); }
                else if (dig >= 90 && dig <= 180) { Console.WriteLine("safe"); }
                else { Console.WriteLine("warning"); }
            }
            return 0;
        }
    }
}