[GESP2503二级] 时间跨越

#include <bits/stdc++.h>
using namespace std;
int main(){
    int y,m,d,h,k;
    cin>>y>>m>>d>>h>>k;
    h+=k;
    if(h>23){
        d++;
        h-=24;
    }
    if(m==2){
        if(y%400==0||y%100!=0&&y%4==0){
            if(d==30){
                m++;
                d=1;
            }
        }
        else if(d==29){
            m++;
            d=1;
        }
    }
    else if(m==4||m==6||m==9||m==11){
        if(d==31){
            m++;
            d=1;
        }
    }
    else{
        if(d==32){
            m++;
            d=1;
        }
    }
    if(m==13){
        y++;
        m=1;
    }
    cout<<y<<" "<<m<<" "<<d<<" "<<h;
    return 0;
}