85 WA了第三到第五个点 求调(必关)
查看原帖
85 WA了第三到第五个点 求调(必关)
1742930
Pan807楼主2025/7/30 17:17
#include <bits/stdc++.h>
using namespace std;
int main() {
	int y,m,d,h,k;
	cin>>y>>m>>d>>h>>k;
	if(y%400==0) {
		if(k+h>=24) {
			h=(k+h)%24;
			d++;
		} else {
			h=k+h;
		}
		if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) {
			if(d>=31) {
				d=d%31;
				m++;
			}
		} else if(m==4||m==6||m==9||m==11) {
			if(d>=30) {
				d=d%30;
				m++;
			}
		} else {
			if(d>=29) {
				d=d%29;
				m++;
			}
		}
		if(m>12) {
			m=m%12;
			y++;
		}
	} else if(y%4==0&&y%100!=0) {
		if(k+h>=24) {
			h=(k+h)%24;
			d++;
		} else {
			h=k+h;
		}
		if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) {
			if(d>=31) {
				d=d%31+1;
				m++;
			}
		} else if(m==4||m==6||m==9||m==11) {
			if(d>=30) {
				d=d%30+1;
				m++;
			}
		} else {
			if(d>29) {
				d=d%29+1;
				m++;
			}
		}
		if(m>12) {
			m=m%12;
			y++;
		}
	} else {
		if(k+h>=24) {
			h=(k+h)%24;
			d++;
		} else {
			h=k+h;
		}
		if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) {
			if(d>=31) {
				d=d%31;
				m++;
			}
		} else if(m==4||m==6||m==9||m==11) {
			if(d>=30) {
				d=d%30;
				m++;
			}
		} else {
			if(d>=28) {
				d=d%28;
				m++;
			}
		}
		if(m>12) {
			m=m%12;
			y++;
		}
	}
	cout<<y<<" "<<m<<" "<<d<<" "<<h;
}
2025/7/30 17:17
加载中...