POJ 1008_Maya Calendar

16 篇文章 0 订阅
7 篇文章 0 订阅

  没什么算法技巧,理解题意,and convert the dates from the Haab calendar to the Tzolkin calendar. 



#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
using namespace std;

map<string, int> Haab;
void init(){
	Haab.insert(pair<string, int>("pop", 1));
	Haab.insert(pair<string, int>("no", 2));
	Haab.insert(pair<string, int>("zip", 3));
	Haab.insert(pair<string, int>("zotz", 4));
	Haab.insert(pair<string, int>("tzec", 5));
	Haab.insert(pair<string, int>("xul", 6));
	Haab.insert(pair<string, int>("yoxkin", 7));
	Haab.insert(pair<string, int>("mol", 8));
	Haab.insert(pair<string, int>("chen", 9));
	Haab.insert(pair<string, int>("yax", 10));
	Haab.insert(pair<string, int>("zac", 11));
	Haab.insert(pair<string, int>("ceh", 12));
	Haab.insert(pair<string, int>("mac", 13));
	Haab.insert(pair<string, int>("kankin", 14));
	Haab.insert(pair<string, int>("muan", 15));
	Haab.insert(pair<string, int>("pax", 16));
	Haab.insert(pair<string, int>("koyab", 17));
	Haab.insert(pair<string, int>("cumhu", 18)); 
	Haab.insert(pair<string, int>("uayet", 19));
}
const char Tzolkin[][10] = { "imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau" };
int main()
{
	init();
	char tmp[15];
	int day, year, totalDays;
	int tmpDay, tmpMonth,tmpYear;
	int n;
	cin >> n;
	cout << n << endl;
	while (n--){
		totalDays = 0;
		scanf("%d. %s %d", &day, tmp, &year);
		totalDays += (year*(18 * 20 + 5)+((Haab[tmp] - 1) * 20 + day));		//calculate the total days
		tmpYear = totalDays / 260;		//year
		tmpMonth = totalDays % 260;
		tmpDay = tmpMonth%13+1;		//num
		cout << tmpDay << " " << Tzolkin[(tmpMonth) % 20] << " " << tmpYear << endl;
	}

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值