Yuulis.log

Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 420 A - What month is it? | 緑コーダーが解くAtCoder

atcoder.jp

配点: 100 点 / 実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 10 / NoviSteps: 8Q

問題概要

 1 以上  12 以下の整数  X,Y が与えられるので、  X 月の  Y ヶ月後が何月か求めよ。

制約

  • 問題文の通り

考察

 X Y を加えて、それを  12 で割った余りを求めればよい。

...のだが、これだとサンプルケース3の  X = Y = 12 のような場合に答えが  0 となってしまうので、うまいこと  1 から  12 の範囲で出力できるように調整しなければならない。

今回は  (X - 1 + Y) \mod 12 + 1 とすればよい。

実装例

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

// ======================================== //

int main()
{
    int X, Y;
    cin >> X >> Y;

    cout << (X - 1 + Y) % 12 + 1 << endl;

    return 0;
}

atcoder.jp

実装時間: 5分以内

コメント

一般に、  N \mod M区間  [1, M]clamp するためには、  (N-1) \mod M + 1 とすればよい。これは地味に便利なので覚えておいてもいいかも。