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 JAVA (judge verdict: Wrong Answer)

import java.io.*;
class Main
{
    public static void main(String args[])throws IOException
    {
	BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
	String str;
	while((str=input.readLine())!=null)
	    {
		String str_ary[]=str.split(" ");
		int x[]=new int[3];
		for(int i=0;i<3;i++)
		    {
			x[i]=Integer.parseInt(str_ary[i]);
			
		    }
		if((x[0]<1868) || ((x[0]==1868) && (x[1]<9)) || ((x[0]==1868) && (x[1]==9) && (x[2]<8)))System.out.println("pre-meiji");
		if(((1869<=x[0]) && (x[0]<=1911)) || ((x[0]==1868) && (9<=x[1]) && (8<=x[2]) || ((x[0]==1868) && (9<=x[1])) || (x[0]==1912 && x[1]==7 && x[2]<=29)))System.out.println("meiji");
		if(((1913<=x[0]) && (x[0]<=1925)) || ((x[0]==1912) && (7<=x[1]) && (30<=x[2])) || (x[0]==1926 && x[1]==12 && x[2]<=24))System.out.println("taisho");
		if(((1927<=x[0]) && (x[0]<=1988)) || ((x[0]==1926) && (12==x[1]) && (25<=x[2])) || ((x[0]==1989) && (x[1]==1) && (x[2]<=7)))System.out.println("showa");
		if((1989==x[0]) && (1<=x[1]) && (8<=x[2]) || 1990<x[0])System.out.println("heisei");
	    }
    }
}