SP9529 MAYCA - Maya Calendar 题解
玄学。
说实话不理解为什么评黄,这么水的模拟题。
思路
其实就是要实现
这里可以偷懒列个表。
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#define int long long
using namespace std;
#define f(W, X, Y, Z) for(int W = X; W <= Y; W += Z)
#define F(W, X, Y, Z) for(int W = X; W >= Y; W -= Z)
#define debug puts("QAQ")
string a[20]={"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet"};//这里不能是char数组,不然会玄学WA
char b[20][20]={"imix","ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"};
signed main(){
int T;
scanf("%lld", &T);
printf("%lld\n", T);
while(T--){
int day, month, year;
scanf("%lld.", &day);
string MONTH;
cin >> MONTH;
scanf("%lld", &year);
f(i, 0, 18, 1){
if(a[i] == MONTH){
month = i;//找到该月对应的数字
break;
}
}
int all = year * 365 + month * 20 + day;//计算天数
printf("%lld %s %lld\n", all % 13 + 1, b[all % 20], all / 260);//转化到b历法
}
return 0;
}