可爱萌新刚学OI1e-18s代码求调
查看原帖
可爱萌新刚学OI1e-18s代码求调
1056908
封禁用户楼主2024/3/5 16:29

只AC#3和#10

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll q,r,month[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main(){
	cin>>q;
	while(q--){
		cin>>r,++r;
		if(r<2299161){
			ll a=r/1461,b=r%1461,y=a*4-4713,run=1;
			if(b>366)b-=366,++y,run=0;
			if(y>=0)++y;
			y+=b/365,b%=365;
			ll m=1;
			for(;b>month[run][m];++m)b-=month[run][m];
			cout<<b<<' '<<m<<' '<<abs(y)<<(y>0?"\n":" BC\n");
		}else{
			r-=2299161;
			if(r>78){
				r-=78;
				if(r>6209){
					r-=6209;
					ll a=r/146097,b=r%146097,ru=0;
					while(b>(ru%4==0&&ru%100!=0||ru%400==0?366:365))b-=(ru%4==0&&ru%100!=0||ru%400==0?366:365),++ru;
					ll run=bool(ru%4==0&&ru%100!=0||ru%400==0),m=1;
					for(;b>month[run][m];++m)b-=month[run][m];
					cout<<b<<' '<<m<<' '<<ru+1600+a*400<<'\n';
				}else{
					ll ru=0;
					while(r>(ru%4==1?366:365))r-=(ru++%4==1?366:365);
					ll run=bool(ru%4==1),m=1;
					for(;r>month[run][m];++m)r-=month[run][m];
					cout<<r<<' '<<m<<' '<<ru+1583<<'\n';
				}
			}else{
				if(r>17){
					r-=17;
					if(r>30){
						r-=30;
						cout<<r<<" 12 1582\n";
					}else cout<<r<<" 11 1582\n";
				}else cout<<15+r<<" 10 1582\n";
			}
		}
	}return 0;
}
2024/3/5 16:29
加载中...