[POJ_1008]Maya Calendar
2011-08-24 16:34
537 查看
#include <iostream> #include <string> #include <list> #include <map> using namespace std; string maya_month[] = { "pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet" }; string tzolkin_day[] = { "imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau" }; struct Date { int year, month, day; }; map<string, int> maya_month_table; list<Date> date_list; void build_tables() { for (int i=0; i<19; i++) { maya_month_table[maya_month[i]] = i; } } void parse_maya_date(int year, int month, int day) { int total_days = 0; total_days += year * 365; total_days += month * 20; total_days += day; // which year? int tyear = total_days / 260; int tname = (total_days % 20); int tday = (total_days % 13); cout << (tday+1) << " " << tzolkin_day[tname] << " " << tyear << endl; } int get_maya_day(string day_name) { int len = day_name.length(); int base = 1; int sum = 0; for (int i=len-2; i>=0; i--) { sum = (day_name.at(i) - '0') * base; base *= 10; } return sum; } int main() { int count; cin >> count; build_tables(); for (int i=0; i<count; i++) { Date date; string day_name; string month_name; cin >> day_name; cin >> month_name; cin >> date.year; date.month = maya_month_table[month_name]; date.day = get_maya_day(day_name); date_list.push_back(date); } cout << count << endl; for (list<Date>::iterator iter = date_list.begin(); iter != date_list.end(); ++iter) { parse_maya_date(iter->year, iter->month, iter->day); } return 1; }
相关文章推荐
- poj 1008 Maya Calendar
- POJ-1008 Maya Calendar
- POJ-1008-Maya Calendar
- Maya Calendar (POJ 1008)
- POJ 1008 Maya Calendar
- poj 1008 Maya Calendar
- POJ1008-Maya Calendar
- POJ 1008 Maya Calendar
- POJ 1008 Maya Calendar
- POJ 1008 Maya Calendar
- POJ 1008: Maya Calendar
- poj 1008 Maya Calendar
- poj 1008 Maya Calendar
- Poj OpenJudge 百练 Bailian 1008 Maya Calendar
- POJ 1008 Maya Calendar
- POJ--1008 Maya Calendar
- poj1008 Maya Calendar
- poj 1008 Maya Calendar
- POJ 1008 Maya Calendar
- POJ 1008 Maya Calendar