結果

問題 No.721 Die tertia (ディエ・テルツィア)
ユーザー card_board01card_board01
提出日時 2018-09-27 20:26:30
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 1,331 bytes
コンパイル時間 192 ms
コンパイル使用メモリ 31,104 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-04-20 09:10:18
合計ジャッジ時間 936 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>

// 新年
void newyear(int *y, int *m, int *d) {
    *y++;
    *m = 1;
    *d = 1;
}

// 月替わり
void newmonth(int *m, int *d) {
    *m++;
    *d = 1;
}

// 一日追加
void dateplus(int *d) {
    *d++;
}

// 1日分の作業
int tomorrow(int *y, int *m, int *d, int data[]) {
    if (*m == 12 && *d == 31) {  // 大晦日
        newyear(y, m, d);
        return 0;
    }
    else if (*d == data[*m + 1]) {  // 12月以外の月末
        newmonth(m, d);
        return 0;
    }
    else {
        dateplus(d);
        return 0;
    }
}

int main(void) {
    int Y[4], M[2], D[2];
    int damy;
    int y, m, d;
    int febdate;  // 2月の日数
    
    for (int i = 0; i < 4; i++) {
        scanf("%d", &Y[i]);
    }
    scanf("%d", &damy);
    
    for (int i = 0; i < 2; i++) {
        scanf("%d", &M[i]);
    }
    scanf("%d", &damy);
    
    for (int i = 0; i < 2; i++) {
        scanf("%d", &D[i]);
    }
    
    y = 1000*Y[0] + 100*Y[1] + 10*Y[2] + Y[3];
    m = 10*M[0] + M[1];
    d = 10*D[0] + D[1];
    
    febdate = (y%4 == 0? 29: 28);
    
    int data[12] = {31, febdate, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31};
    
    // 2年後の日付計算
    for (int i = 0; i < 2; i++) {
        tomorrow(&y, &m, &d, data);
    }
    
    printf("%d/%d/%d\n", y, m, d);
    
    return 0;
}
0