POJ 1008_Maya Calendar

  沒什麼算法技巧,理解題意,and convert the dates from the Haab calendar to the Tzolkin calendar. 



#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
using namespace std;

map<string, int> Haab;
void init(){
	Haab.insert(pair<string, int>("pop", 1));
	Haab.insert(pair<string, int>("no", 2));
	Haab.insert(pair<string, int>("zip", 3));
	Haab.insert(pair<string, int>("zotz", 4));
	Haab.insert(pair<string, int>("tzec", 5));
	Haab.insert(pair<string, int>("xul", 6));
	Haab.insert(pair<string, int>("yoxkin", 7));
	Haab.insert(pair<string, int>("mol", 8));
	Haab.insert(pair<string, int>("chen", 9));
	Haab.insert(pair<string, int>("yax", 10));
	Haab.insert(pair<string, int>("zac", 11));
	Haab.insert(pair<string, int>("ceh", 12));
	Haab.insert(pair<string, int>("mac", 13));
	Haab.insert(pair<string, int>("kankin", 14));
	Haab.insert(pair<string, int>("muan", 15));
	Haab.insert(pair<string, int>("pax", 16));
	Haab.insert(pair<string, int>("koyab", 17));
	Haab.insert(pair<string, int>("cumhu", 18)); 
	Haab.insert(pair<string, int>("uayet", 19));
}
const char Tzolkin[][10] = { "imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau" };
int main()
{
	init();
	char tmp[15];
	int day, year, totalDays;
	int tmpDay, tmpMonth,tmpYear;
	int n;
	cin >> n;
	cout << n << endl;
	while (n--){
		totalDays = 0;
		scanf("%d. %s %d", &day, tmp, &year);
		totalDays += (year*(18 * 20 + 5)+((Haab[tmp] - 1) * 20 + day));		//calculate the total days
		tmpYear = totalDays / 260;		//year
		tmpMonth = totalDays % 260;
		tmpDay = tmpMonth%13+1;		//num
		cout << tmpDay << " " << Tzolkin[(tmpMonth) % 20] << " " << tmpYear << endl;
	}

	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章