Maya Calendar
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 80956   Accepted: 24892

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 分析:题目很简单,做简单hash表处理就可以0ms了。
 #include <stdio.h>
#include <stdlib.h> #define INPUT_BUF_SIZE 10000 typedef struct
{
int day;
int month;
int year;
}Haab; typedef struct
{
int haabNum;
Haab haab[INPUT_BUF_SIZE];
}HaabYears; HaabYears g_haabYears; int g_haabHash[]; char g_tzolkinDay[][] =
{
"imix\0", "ik\0", "akbal\0", "kan\0", "chicchan\0",
"cimi\0", "manik\0", "lamat\0", "muluk\0", "ok\0",
"chuen\0", "eb\0", "ben\0", "ix\0", "mem\0",
"cib\0", "caban\0", "eznab\0", "canac\0", "ahau\0"
}; void InitHash(int *haabHash)
{
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
haabHash[] = ;
} void GetHaab(HaabYears *years)
{
int i = ;
char tmp;
int hashValue;
scanf("%d", &years->haabNum); for(i = ; i < years->haabNum; i++)
{
hashValue = ;
scanf("%d", &years->haab[i].day);
getchar();
getchar();
while((tmp = getchar()) >= 'a')
{
hashValue += tmp;
}
years->haab[i].month = g_haabHash[hashValue];
scanf("%d", &years->haab[i].year);
getchar();
}
} void printTzolkin(HaabYears *years)
{
int i;
long totalDay;
int year, leftDay, num, day;
printf("%d\n", years->haabNum);
for(i = ; i < years->haabNum; i++)
{
totalDay = years->haab[i].year * + years->haab[i].month * + years->haab[i].day;
year = (int)totalDay/;
leftDay = totalDay%;
num = leftDay% + ;
day = leftDay%;
printf("%d %s %d\n", num, g_tzolkinDay[day], year);
}
} int main()
{
InitHash(g_haabHash);
GetHaab(&g_haabYears);
printTzolkin(&g_haabYears);
return ;
}

北大poj- 1008的更多相关文章

  1. 北大POJ题库使用指南

    原文地址:北大POJ题库使用指南 北大ACM题分类主流算法: 1.搜索 //回溯 2.DP(动态规划)//记忆化搜索 3.贪心 4.图论 //最短路径.最小生成树.网络流 5.数论 //组合数学(排列 ...

  2. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

  3. POJ 1008 Maya Calendar

    链接:http://poj.org/problem?id=1008 Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Subm ...

  4. [POJ 1008] Maya Calendar C++解题

        Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 62297   Accepted: 192 ...

  5. [POJ] #1008# Maya Calendar : 字符处理/同余问题

    一. 题目 Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 74085   Accepted: 2 ...

  6. poj 1008

    #include<iostream>#include<string> using namespace std;string hname[19] = { "pop&qu ...

  7. POJ 1008 简单模拟题

    e.... 虽然这是一道灰常简单的模拟题.但是米做的时候没有读懂第二个日历的计时方法.然后捏.敲完之后华丽的WA了进一个点.坑点就在一年的最后一天你是该输出本年的.e ...但是我好想并没有..看di ...

  8. POJ 1008 Maya Calendar / UVA 300【日期转换/常量数组】

    Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 82431 Accepted: 25319 Descr ...

  9. Maya Calendar POJ - 1008 (模拟)

    简述 注意260天的情况,这个地方还是0年 代码 #include <iostream> #include <map> #include <sstream> usi ...

  10. 【Java】深深跪了,OJ题目Java与C运行效率对比(附带清华北大OJ内存计算的对比)

    看了园友的评论之后,我也好奇清橙OJ是怎么计算内存占用的.重新测试的情况附在原文后边. -------------------------------------- 这是切割线 ----------- ...

随机推荐

  1. Linux重要命令总结

    tar命令后面最常跟的参数 -zxvf 是什么意思? z 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压 x 从 tar 包中把文件提取出来,单词extract的含义是 ...

  2. Vue+Element+Select获取选中的对象

              案例演示:获取select当前选中的所有内容 <el-select v-model="value8" filterable placeholder=&qu ...

  3. Eclipse手动添加web.xml

    当创建web工程时,没有自动创建web.xml 这时候就需要手动添加web.xml 该怎么做呢 右键项目,点击java EE Tools 其中点击Genertate Deployment Descri ...

  4. Android平台上的Aplay与TinyAlsa移植使用

    ALSA是高级Linux声音架构.提供了一系列音频的逻辑接口,包括PCM.CONTROL等.这些,不影响它的使用,了解一下就可以. 在Android设备上,linux 2.x的版本,要控制录制播放音频 ...

  5. ckeditor5字体颜色,字体背景颜色设置显示

    在config.js中添加相关代码: config.allowedContent=true;//关闭标签过滤, config.colorButton_enableAutomatic = true; c ...

  6. git提交步骤

    1,为了确定在本地分支下操作,可以用命令查看一下是否在本地分支 git branch 2,可以查看状态,是否添加了哪些内容 git status 3,如果确认无误,使用命令进行提交本地代码,并加上注释 ...

  7. MySQL— 索引,视图,触发器,函数,存储过程,执行计划,慢日志,分页性能

    一.索引,分页性能,执行计划,慢日志 (1)索引的种类,创建语句,名词补充(最左前缀匹配,覆盖索引,索引合并,局部索引等): import sys # http://www.cnblogs.com/w ...

  8. throw与throws

    throws可以单独使用(一直上抛) throw要么和try-catch-finally语句配套使用,要么与throws配套使用 /** * 总结: *    1.throws是方法抛出异常.如: p ...

  9. FNMP

    Table of Contents 平台 FNMP安装 FNMP配置 php配置 mysql配置 nginx配置 phpMyAdmin配置 平台 freeBSD 12.0 FNMP安装 php安装 v ...

  10. App测试之Monkey压力测试