当前位置:网站首页>Maya Calendar(POJ1008)
Maya Calendar(POJ1008)
2022-06-30 03:55:00 【Cod_ ing】
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*
#include<iostream>
#include<string>
using namespace std;
string Haab[19]={
"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen",
"yax","zac","ceh","mac","kankin","muan","pax","koyab","cumhu","uayet"};
string Tzolkin[20]={
"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk",
"ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
// Don't look at the words
struct data{
public:
int year;
string month;
int day;
};
void convert(data&t){
long allday;
int i,out1,out3=0;
string out2;
for(i=0;i<19;i++)
if(t.month==Haab[i]) // Match the corresponding month
break;
allday=i*20+365*t.year+(t.day+1); //Haab Calendar from "0" Starting meter , So we have to +1 ,
// All days are number of years * 365, And all the months before this month * 20
if(allday%13==0) // The numbers are in 13 For cycles
out1=13;
else
out1=allday%13;
while(allday>260){
out3++;
allday-=260;
}
if(allday==0) // Remainder is 0 when , Represents the last day of the year .
out2="ahua";
else {
while(allday>20){
// Words with 20 For a cycle
allday-=20;
}
if(allday==0)
out2="ahua";
else
out2=Tzolkin[allday-1];
}
cout<<out1<<" "<<out2<<" "<<out3<<endl;
}
int main(){
int N,i;
char ch;
data t;
cin>>N;
data *p=new data[N];
for(i=0;i<N;i++)
cin>>p[i].day>>ch>>p[i].month>>p[i].year; //ch, Pay attention to the input of the period
cout<<N<<endl; // The number of columns is also output together ( Just nm Out of line )
for(i=0;i<N;i++)
convert(p[i]);
}
边栏推荐
- Solutions for project paths
- 尝试链接数据库时出现链接超时报错,如何解决?
- Use ideal to connect to the database. The results show some warnings. How to deal with this part
- Play with algorithm interview together, nanny level strategy (with high-definition codeless algorithm summary map), recommended collection
- Is the largest layoff and salary cut on the internet coming?
- RPC correction
- Number of students from junior college to Senior College (4)
- 【模糊神经网络预测】基于模糊神经网络实现水质预测含Matlab源码
- Grasp grpc communication framework in simple terms
- Arrangement of language resources of upgraded version
猜你喜欢

Green new power and "zero" burden of computing power -- JASMINER X4 series is popular

The jupyter notebook kernel hangs up frequently and needs to be restarted

接口测试--如何分析一个接口?

Is the largest layoff and salary cut on the internet coming?

【笔记】AB测试和方差分析

Use common fileUpload to upload files

You know AI, database and computer system

When easycvr deploys a server cluster, what is the reason why one is online and the other is offline?

Jour 9 Gestion des scripts et des ressources

【笔记】2022.5.27 通过pycharm操作MySQL
随机推荐
解决navicat连接数据库遇到的问题
Analysis of similarities and differences of various merged features (Union, merge, append, resolve) in ArcGIS
11: I came out at 11:04 after the interview. What I asked was really too
学校实训要做一个注册页面,要打开数据库把注册页面输入的内容存进数据库但是
LitJson解析 生成json文件 读取json文件中的字典
如何利用FME 创建自己的功能软件
You know AI, database and computer system
mysql更新数组形式的json串
laravel9本地安装
Redis is used in Windows system
Laravel9 local installation
[0x0] 校长留的开放问题作业
Node red series (28): communication with Siemens PLC based on OPC UA node
Chapter 2 control structure and function (programming problem)
[0x0] open questions left by the principal
Note: load the configuration file as a byte stream and get the resources in it
Interface testing -- how to analyze an interface?
[note] on May 27, 2022, MySQL is operated through pychart
Tidb 6.0: making Tso more efficient tidb Book rush
What does the hyphen mean for a block in Twig like in {% block body -%}?