0083 - Era Name Transformation

#include <iostream>
#include <string>
using namespace std;

void Slove(int year, int month, int day)	{
	const string era[5]={"pre-meiji", "meiji", "taisho", "showa", "heisei"};
	const long long int period[4]={18680908, 19120730, 19261225, 19890108};
	long long int number=year*10000+100*month+day;
	bool flg=false;

	if ( number < period[0] )	{
		cout << "pre-meiji" << endl;
		flg=true;
	}
	else	{
		for (int i=0; i<4; ++i)
			if ( number < period[i] )	{
				cout << era[i] << " " << year-(period[i-1]/10000-1) << " " << month << " " << day << endl;
				flg=true;
				break;
			}
		if (!flg)	cout << era[5-1] << " " << year-(period[4-1]/10000-1) << " " << month << " " << day << endl;
	}
}

int main(void)	{
	int year, month, day;

	while (cin >> year >> month >> day)
		Slove(year,month,day);
	return 0;
}

手こずりすぎた。。死にたぃ。。。リスカしょ...