http://acm.pku.edu.cn/JudgeOnline/problem?id=1008

Код:
#include <stdio.h>

int main()
{
    int T, dd,mm,yy, D,i;
    char s[10];
    char MH[][10]={"","pop","no","zip","zotz","tzec","xul","yoxkin","mol",
    "chen","yax","zac","ceh","mac","kankin","muan","pax","koyab",
    "cumhu","uayet"};
    char MT[][10]={"imix","ik","akbal","kan","chicchan","cimi","manik",
    "lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban",
    "eznab","canac","ahau"};

    scanf("%d", &T);
    printf("%d\n", T);
    while(T--) {
        scanf("%d. %s %d", &dd,s,&yy);
        for(i=1;i<=19;i++)
            if(strcmp(s, MH[i])==0) break;
        mm = i;
        D=yy*365;
        if(mm<=18) D+=(mm-1)*20;
        else D+=360;
        D+=dd;

        yy=D/260;
        mm=D%20;
        dd=D%13+1;

        printf("%d %s %d\n", dd,MT[mm],yy);
    }

    return 0;
}