結果

問題 No.721 Die tertia (ディエ・テルツィア)
ユーザー card_board01card_board01
提出日時 2018-09-27 20:17:41
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 974 bytes
コンパイル時間 943 ms
コンパイル使用メモリ 28,544 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-10-12 04:34:21
合計ジャッジ時間 1,101 ms
ジャッジサーバーID
(参考情報)
judge1 / 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);
    }
}

int main(void) {
    int y, m, d;
    int febdate;  // 2月の日数
    
    scanf("%d", &y);
    scanf("%d", &m);
    scanf("%d", &d);
    
    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