#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <cstdlib>
using namespace std;
const int N = 19;
const int M = 10;
const char Haab[N][M] = {"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen",
"yax",
"zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu",
"uayet"};
const int HaabDay[N] = {20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 5};
const char Tzolkin[N + 1][M] = {"imix", "ik", "akbal", "kan", "chicchan", "cimi",
"manik","lamat", "muluk",
"ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban",
"eznab", "canac", "ahau"};
int findMonth(const string &s);
int main()
{
string sday, smonth;
int year;
int t;
int iday, imonth;
int totalday;
int ansday, ansmonth, ansyear;
#ifndef ONLINE_JUDGE
ifstream cin("e:\\uva_in.txt");
#endif // ONLINE_JUDGE
cin >> t;
cout << t << endl;
while (t--) {
cin >> sday >> smonth >> year;
sday.erase(sday.end() - 1);
iday = atoi(sday.c_str());
//cout << "iday:" << iday << endl;
imonth = findMonth(smonth);
//cout << "imonth:" << imonth << endl;
totalday = year * 365;
for (int i = 0; i < imonth; i++)
totalday += HaabDay[i];
totalday += iday;
ansday = totalday % 13 + 1;
ansmonth = totalday % 20;
ansyear = totalday / 260;
cout << ansday << " " << Tzolkin[ansmonth] << " " << ansyear << endl;
}
return 0;
}
int findMonth(const string &s)
{
for (int i = 0; i < N; i++) {
if (strcmp(s.c_str(), Haab[i]) == 0) {
return i;
}
}
return -1;
}
UVa300 - Maya Calendar
最新推荐文章于 2021-04-02 09:32:05 发布