RE求助
查看原帖
RE求助
201192
最後楼主2020/11/23 19:21

rt 5—10点都RE

#include<bits/stdc++.h>
using namespace std;//2299172//146097
const unsigned long long a=146097;
unsigned long long month[130]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void ask_day(unsigned long long data)
{
	if(data<=2299172)
	{
		unsigned long long go_year=data/1461,go_day=data%1461;
		if(go_day==0)
		{
			go_day+=1461;
			go_year--;
		}
		go_year=4*go_year;
		if(go_year<=4712)
		{
			if(go_day>60)go_day--;
			else
			{
				if(go_day<=31)printf("%llu %llu %llu BC\n",go_day,1,4713-go_year);
				else printf("%llu %llu %llu BC\n",go_day-31,2,4713-go_year);
				return ;
			}
			go_year+=go_day/365;
			go_day%=365;
			if(go_day==0)
			{
				go_year--;
				go_day+=365;
			}
			unsigned long long go_month=1,cnt=1;
			while(go_day>month[cnt])
			{
				go_day-=month[cnt];
				cnt++;
				go_month++;
			}
			printf("%llu %llu %llu BC\n",go_day,go_month,4713-go_year);
			return;
		}
		else 
		{
			if(go_day>=60)go_day--;
			else
			{
				if(go_day<=31)printf("%llu %llu %llu\n",go_day,1,go_year-4712);
				else printf("%llu %llu %llu\n",go_day-31,2,go_year-4712);
				return ;
			}
			go_year+=go_day/365;
			go_day%=365;
			if(go_day==0)
			{
				go_year--;
				go_day+=365;
			}
			unsigned long long go_month=1,cnt=1;
			while(go_day>month[cnt])
			{
				go_day-=month[cnt];
				cnt++;
				go_month++;
			}
			printf("%llu %llu %llu\n",go_day,go_month,go_year-4712);
			return;
		}
	}
	else
	{
		data-=2299172;
		if(data<=77)
		{
			if(data<=16)printf("%llu %llu %llu\n",data+15,10,1582);
			else if(data<=46)printf("%llu %llu %llu\n",data-16,11,1582);
			else printf("%llu %llu %llu\n",data-46,12,1582);
			return;
		}
		data-=77;
		unsigned long long go_year=1583;
		unsigned long long go_day=data+10;
		go_year+=go_day/a*400;
		go_day%=a;
		if(go_day==0)
		{
			go_day+=a;
			go_year-=400;
		}
		while(go_day>366)
		{
			if(go_year%400==0)go_day-=366;
			else if(go_year%100==0)go_day-=365;
			else if(go_year%4==0)go_day-=366;
			else go_day-=365;
			go_year++;
		}
		bool flag=false;
		if(go_year%400==0)flag=true;
		else if(go_year%100!=0&&go_year%4==0)flag=true;
		if(flag)
		{
			if(go_day<=31)
			{
				printf("%llu %llu %llu\n",go_day,1,go_year);
				return ;
			}
			else if(go_day<=60)
			{
				printf("%llu %llu %llu\n",go_day-31,2,go_year);
				return;
			}
			go_day--;
		}
		unsigned long long go_month=1,cnt=1;
		while(go_day>month[cnt])
		{
			go_day-=month[cnt];
			cnt++;
			go_month++;
		}
		printf("%llu %llu %llu\n",go_day,go_month,go_year);
		return ;
	}
}
int main()
{
	//freopen("P7075_5.in","r",stdin);
	//freopen("julian333.out","w",stdout);
	int Q;
	scanf("%d",&Q);
	while(Q--)
	{
		unsigned long long data;
		scanf("%llu",&data);
		ask_day(data+1);
	}
	//if(!system("fc julian333.out P7075_5.out"))cout<<"!!!!!";
	return 0;
}
2020/11/23 19:21
加载中...