Problem:
西暦和暦変換

西暦で表された年月日を、元号を用いた和暦に変換し、その年月日を出力するプログラムを作成してください。入力は例に示すように 3 つの整数であり、順に西暦年、月、日です。これを、出力例に示すように変換してください。なお、明治以前の年月日が入力された場合は「pre-meiji」と表示してください。

各年号の最初の年は「元年」ではなく「１年」と出力することとします。

元号

期間

meiji

1868. 9. 8 〜 1912. 7.29

taisho

1912. 7.30 〜 1926.12.24

showa

1926.12.25 〜 1989. 1. 7

heisei

1989. 1. 8 〜

入力

複数のデータが与えられます。各データとして年、月、日を表す３つの整数が空白区切りで１行に与えられます。

入力の終わりまで処理してください。データの数は 50 を超えません。

出力

空白区切りの元号、年、月、日、または「pre-meiji」を１行に出力してください。

Sample Input

2005 9 3
1868 12 2
1868 9 7

Output for the Sample Input

heisei 17 9 3
meiji 1 12 2
pre-meiji

Solution in C# (judge verdict: Wrong Answer)

using System;
using System.Linq;

namespace _0083
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                string gh = Console.ReadLine();
                if (gh == null) { break; }
                int[] a = gh.Split().Select(Int32.Parse).ToArray();
                if (a[0] < 1868 || (a[0] == 1868 && a[1] < 9) || (a[0] == 1868 && a[1] == 9 && a[2] < 8)) { Console.WriteLine("pre-meiji"); }
                else if(a[0] < 1912 || (a[0] == 1912 && a[1] < 7) || (a[0] == 1912 && a[1] == 7 && a[2] <29)) { Console.WriteLine("meiji " + (a[0] - 1867) + " " + a[1] + " " + a[2]); }
                else if (a[0] < 1926 || (a[0] == 1926 && a[1] < 12) || (a[0] == 1926 && a[1] == 12 && a[2] < 25)) { Console.WriteLine("taisho " + (a[0] - 1911) + " " + a[1] + " " + a[2]); }

                else if (a[0] < 1989 || (a[0] == 1989 && a[1] < 1) || (a[0] == 1989 && a[1] == 1 && a[2] <7)) { Console.WriteLine("showa " + (a[0] - 1925) + " " + a[1] + " " + a[2]); }
                else { Console.WriteLine("heisei "+(a[0]-1988)+" "+a[1]+" "+a[2]); }
        //     Console.WriteLine()  
            }
        }
    }//1989. 1. 7
}