PKU 1008-Maya Calendar

問題概要

PKU Wiki

解法

頑張って実装する

実装(Java)

import java.util.*;
import java.math.*;
import java.io.*;
import static java.lang.Math.*;
import static java.util.Arrays.*;

public class Main {
	Scanner input;
	String[] Haabmonth={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin","muan","pax","koyab","cumhu","uayet"};
	String[] TzolikinMonth={"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};

	int Haab2day(int day,String month,int year){
		int res=year*365;
		for(int i=0;i<Haabmonth.length;i++){
			if(month.equals(Haabmonth[i]))break;
			res+=20;
		}
		return res+day;
	}
	void run(){
		input=new Scanner(System.in);
		int n;

		n=input.nextInt();
		printf("%d\n",n);
		for(int i=0;i<n;i++){
			int day,year;String month;
			day=Integer.parseInt(input.next().split("\\.")[0]);
			month=input.next();	year=input.nextInt();
			int value=1;int name=0;
			int d=Haab2day(day,month,year);
			year=d/260;
			d%=260;
			for(int j=0;j<d;j++){
				value++;name++;
				if(value==14)value=1;
				if(name==20)name=0;
			}
			printf("%d %s %d\n",value,TzolikinMonth[name],year);

		}
	}

	void printf(String format,Object... args){
		System.out.printf(format, args);
	}

	public static void main(String[] args) {
		new Main().run();
	}

}