40pts求调
查看原帖
40pts求调
945251
Up_Xu楼主2024/10/17 19:00
#include <bits/stdc++.h>
#define int long long
using namespace std;
int Q,n;
const int run[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
const int ping[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void Qiu(int m,int d,int x,int n,const int a[]){
	while(n>0){n--,d++;if(d>a[m])m++,d=1;}
	cout<<d<<" "<<m<<" "<<x<<" "<<"BC\n";
}
void Qi(int m,int d,int x,int n,const int a[]){
	while(n>0){n--,d++;if(d>a[m])m++,d=1;}
	cout<<d<<" "<<m<<" "<<x<<" "<<"\n";
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>Q;
	while(Q--){
		cin>>n;
		if(n<=1721423){
			int x=4713-n/1461*4;
			n%=1461;
			if(n<366)Qiu(1,1,x,n,run);
			else n-=366,x=x-1-n/365,n%=365,Qiu(1,1,x,n,ping);
		} 
		else{
			int x=1;
			n-=1721424;
			if(n<=577736){
				x+=n/1461*4;
				n%=1461;
				if(n>=365*3)n-=365*3,x+=3,Qi(1,1,x,n,run);
				else x+=n/365,n%=365,Qi(1,1,x,n,ping);
			}
			else{ 
				n-=577737;
				x=1582;
				if(n<=77)Qi(10,15,x,n,ping);
				else{
					n-=78;
					x=1583;
					if(n<365)Qi(1,1,x,n,ping);
					else{
						n-=365;x++;
						x+=n/146097*400;
						n%=146097;
						x+=n/36525*100;
						n%=36525;
						x+=n/1461*4;
						n%=1461;
						if(n>=366){
							n-=366,x++;
							while(n>=365)n-=365,x++;
							Qi(1,1,x,n,ping);					
						}					
						else Qi(1,1,x,n,run);
					
					}

					
				}
			}
		}
	} 
} 

2024/10/17 19:00
加载中...