T了,求助
查看原帖
T了,求助
767748
__2009楼主2024/10/19 15:08
#include<iostream>
using namespace std;
long long d_num[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool rn(long long y){
    if(y%100==0)return y%400==0;
    else return y%4==0;
}
void solve(){
    long long r;
    cin>>r;
    long long d=1,m=1,y=4713;
    d_num[2]=28;
    for(;r>=((y%4==1)?366:365)&&y>0;){
        r-=(y%4==1)?366:365;
        y--;
    }
    if(y>=1){
        d_num[2]=(y%4==1)?29:28;
        // cout<<"threwhsgf "<<y<<'\n';
        for(;r>=d_num[m];){
            r-=d_num[m];
            m++;
        }
        d=1+r;
        cout<<d<<' '<<m<<' '<<y<<" BC"<<'\n';
        return;
    }
    // cout<<'r'<<r<<'\n';
    y=1;
    for(;r>=((y%4==0)?366:365)&&y<1582;){
        r-=(y%4==0)?366:365;
        y++;
    }
    if(y<1582){
        //cout<<y<<' '<<r<<'\n';
        d_num[2]=(y%4==0)?29:28;
        for(;r>=d_num[m];){
            r-=d_num[m];
            m++;
        }
        d=r+1;
        cout<<d<<' '<<m<<' '<<y<<'\n';
        return;
    }
    if(y==1582){
        if(r<=276){
            for(;r>=d_num[m]&&m<10;){
                r-=d_num[m];
                m++;
            }
            d=r+1;
            cout<<d<<' '<<m<<' '<<y<<'\n';
            return;
        }
        r-=276;
        m=10,d=15;
        if(r<=17){
            d=d+r-1;
            cout<<d<<' '<<m<<' '<<y<<'\n';
            return;
        }
        r-=17;
        m=11,d=1;
            //cout<<'r'<<' '<<r<<'\n';
        if(r<=61){
            for(;r>=d_num[m]&&m<12;){
                r-=d_num[m];
                m++;
            }
            d=r;
            cout<<d<<' '<<m<<' '<<y<<'\n';
            return;
        }
        r-=62;
    }
    y=1583,m=1,d=1;
    for(;r>=((rn(y))?366:365);){
        r-=(rn(y))?366:365;
        y++;
    }
    d_num[2]=(rn(y))?29:28;
    // cout<<"threwhsgf "<<y<<'\n';
    for(;r>=d_num[m];){ 
        r-=d_num[m];
        m++;
    }
    d=1+r;
    cout<<d<<' '<<m<<' '<<y<<'\n';
    return;
}
int main(){
    long long T;
    cin>>T;
    while (T--){
        solve();
    }
    return 0;
}
2024/10/19 15:08
加载中...