40分求调,回复必关
查看原帖
40分求调,回复必关
1064274
dgz61楼主2025/8/2 20:08
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll q,n,y,d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool vis,gy;
int main(){
    //freopen("julian.in","r",stdin);
    //freopen("julian.out","w",stdout);
	cin>>q;
	while(q--){
		cin>>n;
		y=4713;
		if(n<=1721423){
			ll an=n/1461;
			n%=1461;
			y-=an*4;
			if(n<366){
				d[2]++;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<1+n<<" "<<i<<" "<<y<<" BC\n";
                d[2]--;
			}
			else if(n<731){
				n-=366;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<1+n<<" "<<i<<" "<<y-1<<" BC\n";
			}
			else if(n<1096){
				n-=731;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<1+n<<" "<<i<<" "<<y-2<<" BC\n";
			}
			else{
				n-=1096;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<1+n<<" "<<i<<" "<<y-3<<" BC\n";
			}
		}
        else if(n<2299161){
            y=0;
            n-=1721423;
            ll an=n/1461;
			n%=1461;
			y+=an*4;
			if(n<365){
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+1<<"\n";
			}
			else if(n<730){
				n-=365;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+2<<"\n";
			}
			else if(n<1095){
				n-=730;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+3<<"\n";
			}
			else{
				n-=1095;
                d[2]++;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+4<<"\n";
                d[2]--;
			}
        }
        else{
            n+=10;
            y=0;
            n-=1721423;
            ll an=n/1461;
            y+=an*4;
            an=an/4-an/400*3;
            n%=1461;
            n+=an;
            if(n>1461){
                an=n/1461;
                y+=an*4;
                an=an/4-an/400*3;
                n+=an;
            }
			if(n<365){
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+1<<"\n";
			}
			else if(n<730){
				n-=365;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+2<<"\n";
			}
			else if(n<1095){
				n-=730;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+3<<"\n";
			}
			else{
				n-=1095;
                d[2]++;
				ll i;
				for(i=1;i<=12 && n>0;i++){
					if(n<d[i]) break;
					n-=d[i];
				}
				cout<<n<<" "<<i<<" "<<y+4<<"\n";
                d[2]--;
			}
        }
	}
	return 0;
}
2025/8/2 20:08
加载中...