Maya Calendar
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 69932   Accepted: 21524

Description

During his last sabbatical, professor M. A. Ya made a surprising discovery about the old Maya calendar. From an old knotted message, professor discovered that the Maya civilization used a 365 day long year, called Haab, which had 19 months. Each of the first
18 months was 20 days long, and the names of the months were pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu. Instead of having names, the days of the months were denoted by numbers starting from 0 to 19.
The last month of Haab was called uayet and had 5 days denoted by numbers 0, 1, 2, 3, 4. The Maya believed that this month was unlucky, the court of justice was not in session, the trade stopped, people did not even sweep the floor. 



For religious purposes, the Maya used another calendar in which the year was called Tzolkin (holly year). The year was divided into thirteen periods, each 20 days long. Each day was denoted by a pair consisting of a number and the name of the day. They used
20 names: imix, ik, akbal, kan, chicchan, cimi, manik, lamat, muluk, ok, chuen, eb, ben, ix, mem, cib, caban, eznab, canac, ahau and 13 numbers; both in cycles. 



Notice that each day has an unambiguous description. For example, at the beginning of the year the days were described as follows: 



1 imix, 2 ik, 3 akbal, 4 kan, 5 chicchan, 6 cimi, 7 manik, 8 lamat, 9 muluk, 10 ok, 11 chuen, 12 eb, 13 ben, 1 ix, 2 mem, 3 cib, 4 caban, 5 eznab, 6 canac, 7 ahau, and again in the next period 8 imix, 9 ik, 10 akbal . . . 



Years (both Haab and Tzolkin) were denoted by numbers 0, 1, : : : , where the number 0 was the beginning of the world. Thus, the first day was: 



Haab: 0. pop 0 



Tzolkin: 1 imix 0 

Help professor M. A. Ya and write a program for him to convert the dates from the Haab calendar to the Tzolkin calendar. 

Input

The date in Haab is given in the following format: 

NumberOfTheDay. Month Year 



The first line of the input file contains the number of the input dates in the file. The next n lines contain n dates in the Haab calendar format, each in separate line. The year is smaller then 5000. 

Output

The date in Tzolkin should be in the following format: 

Number NameOfTheDay Year 



The first line of the output file contains the number of the output dates. In the next n lines, there are dates in the Tzolkin calendar format, in the order corresponding to the input dates. 

Sample Input

3
10. zac 0
0. pop 0
10. zac 1995

Sample Output

3
3 chuen 0
1 imix 0 9 cimi 2801 题意:看了我近半小时Orz 英语太弱了 玛雅人有两种纪年:haab 和 holly haab : 365天 19个月 最后一个uayet月 仅仅有5天 holly 260天 13个月 每月都是20天 总的天数sum%13+1 为日期 sum%20+1 为月份 sum/260为年份
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; int init_Haab(char *s)
{
if(strcmp(s,"pop")==0)
return 1;
else if(strcmp(s,"no")==0)
return 2;
else if(strcmp(s,"zip")==0)
return 3;
else if(strcmp(s,"zotz")==0)
return 4;
else if(strcmp(s,"tzec")==0)
return 5;
else if(strcmp(s,"xul")==0)
return 6;
else if(strcmp(s,"yoxkin")==0)
return 7;
else if(strcmp(s,"mol")==0)
return 8;
else if(strcmp(s,"chen")==0)
return 9;
else if(strcmp(s,"yax")==0)
return 10;
else if(strcmp(s,"zac")==0)
return 11;
else if(strcmp(s,"ceh")==0)
return 12;
else if(strcmp(s,"mac")==0)
return 13;
else if(strcmp(s,"kankin")==0)
return 14;
else if(strcmp(s,"muan")==0)
return 15;
else if(strcmp(s,"pax")==0)
return 16;
else if(strcmp(s,"koyab")==0)
return 17;
else if(strcmp(s,"cumhu")==0)
return 18;
else if(strcmp(s,"uayet")==0)
return 19;
} int sumday(int d,int m,int y)
{
int sum=0;
for(int i=1;i<=y;i++)
sum+=365;
for(int i=1;i<m;i++)//千万注意
sum+=20;
return sum+d;
}
// imix, ik, akbal, kan, chicchan, cimi, manik, lamat, muluk, ok, chuen, eb, ben, ix, mem, cib, caban, eznab, canac, ahau
char str[25][10]={"0","imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
int main()
{
int t;
scanf("%d",&t);
printf("%d\n",t);
while(t--)
{
int d,y;
char s[10];
scanf("%d. %s %d",&d,s,&y); int sum = sumday(d,init_Haab(s),y);
int hd=sum%13+1;
int hm=sum%20+1;
int hy=sum/260; printf("%d %s %d\n",hd,str[hm],hy);
}
}

模拟日历计算 poj1008的更多相关文章

  1. javascript 模拟日历

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. PAT甲题题解-1081. Rational Sum (20)-模拟分数计算

    模拟计算一些分数的和,结果以带分数的形式输出注意一些细节即可 #include <iostream> #include <cstdio> #include <algori ...

  3. PAT甲题题解-1088. Rational Arithmetic (20)-模拟分数计算

    输入为两个分数,让你计算+,-,*,\四种结果,并且输出对应的式子,分数要按带分数的格式k a/b输出如果为负数,则带分数两边要有括号如果除数为0,则式子中的结果输出Inf模拟题最好自己动手实现,考验 ...

  4. java 日历计算农历和节假日的工具类

    背景 业务需求需要后端提供这样的接口,网上找了很多java代码例子,虽然功能实现了 但是不完善,特别是节日那一块儿.然后百度发现有这样的插件,但是信息也是java后端提供的非js 然后在开源js插件找 ...

  5. js 面向对象 模拟日历

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 原生JS学习之秒表、日历

    Tips:涉及知识点:Date   setInterval    DOM    秒表 效果图: 简单构造出草图 Html代码 1 <!DOCTYPE html> 2 <html> ...

  7. [fun code - 模拟]孤独的“7”

    今天看到朋友圈里有人发了一张孤独的7的题目,第一反应就是模拟后计算出结果,而女朋友则更爱推理,手算.

  8. HDU4515+计算日期

    模拟! /* 计算过了D天后的日期 之前D天的日期 */ #include<stdio.h> int judge_year( int year ){ ==&&year%!= ...

  9. 小球自由落体动态模拟(Position Based Simulation)

    在过去的几十年中,基于物理的三维物体动态模拟成为了计算机图形学的研究热点,其中最常见的方法是基于力(force-based)的模拟方法,比如弹簧质点模型,它把物体抽象成一系列质点以及连接这些质点的弹簧 ...

随机推荐

  1. SGU 200. Cracking RSA (高斯消元求自由变元个数)

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=200 200. Cracking RSA time limit per test: ...

  2. Keil debugging techniques and alternative printf (SWO function)

    One of the basic needs of the embedded software development through the terminal to output debugging ...

  3. What is CMSIS-DAP

    The mbed HDK and mbed-enabled hardware support the CMSIS-DAP debug interface, which consists of an a ...

  4. bitnami redmine配置全过程

    常见问题: 我在自己的机器上面配置完毕以后,移植到另外一台机器上面,登陆页面总是在检查network,并且最后网络加载失败,不论我是用桥接还是NAT方式连接.登陆系统以后,我尝试连接网络失败,尝试执行 ...

  5. SpringBoot 中使用 @Value 为 static 变量赋值

    原文:https://www.jianshu.com/p/ea477fc9abf7 例如: public class Utils { @Value("${test.host}") ...

  6. Android SDK代理服务器解决国内不能更新下载问题

    原文地址:http://blog.csdn.net/boonya/article/details/38752647 读者须知:本篇文章中最靠谱的是第三种方式,最近有读者反映第三种方式也不行了,下面提供 ...

  7. android iOS 编码问题害死人!

    android 与后端服务器进行通信时,默认使用的编码格式是asi. 而iOS与后端通信时,获取的数据到iOS端默认被utf-8进行编码.所以,我们常常出现android能够从服务器端获取到数据,但是 ...

  8. UIScrollView的判断位置的属性如下:

    contentSize:CGSize类型,scrollview可以滑动的区域,例如,一个view的frame为(0,0,320,480),而scrollview的contentSize为(320,10 ...

  9. 技术人生:special considerations that are very important

    For the most part, a lot of what we know about software development can be applied to different envi ...

  10. malloc基本实现

    转自:http://www.cnblogs.com/wangshide/p/3932539.html 任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间 ...