けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

JOI 一次予選 2024 (第 2 回) B - 火曜日 (8Q, 難易度 1)

慣れていないと少し難しいかもしれない。

問題概要

今日は日曜日である。

今日の  X 日後が火曜日であるならば 1 を、そうでないならば 0 を出力せよ。

解法

 X 日後が火曜日であるための条件を考えましょう。

「0 日後は日曜日」「1 日後は月曜日」「2 日後は火曜日」...といった情報を整理すると、下図のようになります。

火曜日のところに注目すると、

 X = 2, 9, 16, 23, 30, \dots

となっていることが分かります。これらの値の特徴は何かわかるでしょうか。それは


 X を 7 で割った余りが 2 であること


です。整数値 X を 7 で割った余りは X % 7 と書けるのですから、この問題は次のようにして解けます。

  • X % 7 == 2 であるとき:1 を出力する
  • X % 7 != 2 であるとき:0 を出力する

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int X;
    cin >> X;
    if (X % 7 == 2)
        cout << 1 << endl;
    else
        cout << 0 << endl;
}