神奇的事情
查看原帖
神奇的事情
534734
_jinjin_楼主2021/10/19 15:15
#include <bits/stdc++.h>
using namespace std;
int q;
int nian=-4713;
int yue=1;
int ri=1;
long long aa;
inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
int main()
{
	q=read();
	for(register int i=1;i<=q;i++){
		aa=read();
		if(aa>=2299161){
			aa+=10;
		}
		for(;aa>=1;){
			if(yue==1&&ri==1&&nian>1582&&(((nian)%400)==0||(nian%4==0&&nian%100!=0))&&aa>=366){
				aa-=366;
				if(nian==-1){
					nian=1;
				}
				else{
					nian++;
				}
				continue;
			}
			else if(yue==1&&ri==1&&nian>1582&&((((nian)%4)!=0)||(nian%4==0&&nian%100==0))&&aa>=365){
				aa-=365;
				if(nian==-1){
					nian=1;
				}
				else{
					nian++;
				}
				continue;
			}
//			else if(yue=1&&ri==1&&nian<=1582&&nian>0&&(((nian)%4)==0)&&aa>=366){
//				cout<<"yyy";
//				aa-=366;
//				if(nian==-1){
//					nian=1;
//				}
//				else{
//					nian++;
//				}
//				continue;
//			}
			else if(yue==1&&ri==1&&nian<=1582&&nian>0&&((nian)%4)!=0&&aa>=365){
				aa-=365;
				if(nian==-1){
					nian=1;
				}
				else{
					nian++;
				}
				continue;
			}
			else if(yue==1&&ri==1&&nian<0&&(((-nian)%4)==1)&&aa>=366){
				aa=aa-366;
				if(nian==-1){
					nian=1;
				}
				else{
					nian++;
				}
				continue;
			}
			else if(yue==1&&ri==1&&nian<0&&((-nian)%4)-1!=0&&aa>=365){
				aa-=365;
				if(nian==-1){
					nian=1;
				}
				else{
					nian++;
				}
				continue;
			}
			if((yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)&&ri==1&&aa>=31){
				aa-=31;
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			else if((yue==4||yue==6||yue==9||yue==11)&&ri==1&&aa>=30){
				aa-=30;
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			else if(yue==2&&ri==1&&nian>1582&&(((nian)%400)==0||(nian%4==0&&nian%100!=0))&&aa>=29){
				aa-=29;
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			else if(yue==2&&ri==1&&nian>1582&&((((nian)%4)!=0)||(nian%4==0&&nian%100==0))&&aa>=28){
				aa-=28;
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			else if(yue==2&&ri==1&&nian<=1582&&nian>0&&(((nian)%4)==0)&&aa>=29){
				aa-=29;
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			else if(yue==2&&ri==1&&nian<=1582&&nian>0&&((nian)%4)!=0&&aa>=28){
				aa-=28;	
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			else if(yue==2&&ri==1&&nian<0&&(((-nian)%4)-1==0)&&aa>=29){
				aa-=29;
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			else if(yue==2&&ri==1&&nian<0&&((-nian)%4)-1!=0&&aa>=28){
				aa-=28;
				yue++;
				ri=1;
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
				continue;
			}
			for(;aa>=1;aa--){
				ri++;
				if((yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)&&ri>31){
					yue++;
					ri=1;
				}
				else if((yue==4||yue==6||yue==9||yue==11)&&ri>30){
					yue++;
					ri=1;
				}
				else if(yue==2&&ri>29&&nian<0&&(((-nian)%4)-1==0)){
					yue++;
					ri=1;
				}
				else if(yue==2&&ri>28&&nian<0&&((-nian)%4)-1!=0){
					yue++;
					ri=1;
				}
				if(yue>12){
					if(nian==-1){
						nian=1;
					}
					else{
						nian++;
					}
					yue=1;
				}
			}
		}
		if(nian<0){
			cout<<ri<<" "<<yue<<" "<<-nian<<" "<<"BC"<<endl;
		}
		if(nian>0){
			cout<<ri<<" "<<yue<<" "<<nian<<endl;
		}
		nian=-4713;
		yue=1;
		ri=1;
	}
	return 0;
}

我注释的部分把它取消注释发现没有输出“yyy”,说明没有进入此判断,此时样例2过不了,既然没进此判断,说明注释掉和不注释一样过不了,但把它注释掉居然样例2过了!!!

求大佬帮忙解释一下qwq

2021/10/19 15:15
加载中...