az有点难说:)反正是奇怪的输出
查看原帖
az有点难说:)反正是奇怪的输出
381817
Kiichi楼主2020/10/25 21:31

对于样例一 输出的是2000行1 9 6 7 0 4:)还有一行换行(PS用的洛谷IDE) 就很迷:) 感觉好像有什么东西往后挪了两位(az果然我应该开longlong做这题?)嗐我可能还是不适合黄题:)

#include <bits/stdc++.h>
using namespace std;
int T;
int L, y, m, d, h, mi, s, now_s, max_s;
int main() {
    cin >> T;
    while(T > 0) {
        T--;
        cin >> L >> y >> m >> d >> h >> mi >> s;
        max_s = pow(2, L) + 1;
        while(now_s <= max_s) {
            s++, now_s++;
            mi += s / 60, s %= 60;
            h += mi / 60, mi %= 60;
            d += h / 24, h %= 24;
            if((m <= 7 && m % 2 == 1)||(m >= 8 && m % 2 == 0)) m += d / 31, d %= 31;
            else if((m > 2 && m <= 6 && m % 2 == 0)||(m >= 9 && m % 2 == 1)) m += d / 30, d %= 30;
            else {
                if(y % 4 == 0) {
                    if(y % 400 == 0) m += d / 29, d %= 29;
                    else if(y % 100 == 0) m += d / 28, d %= 28;
                    else m += d / 29, d %= 29;
                } else m += d / 28, d %= 28;
            }
            y += m / 12, m %= 12;
        }
        cout << y << " " << m << " " << d << " " << h << " " << mi << " " << s << " " << endl;
    }
    return 0;
}
2020/10/25 21:31
加载中...