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

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

AtCoder ABC 096 A - Day of Takahashi (灰色, 100 点)

一瞬、各月の日数を考えないといけない気がして面倒だ......となった。でもその必要はなかった。

問題概要

2018 年 1 月 1 日から、2018 年  a b 日までに、「月と日が等しい日」が何日あるかを数えてください。

解法

この手の問題では手を動かして考えよう。たとえば、

  • 2018 年 4 月 2 日のときは、1 月 1 日、2 月 2 日、3 月 3 日の 3 日
  • 2018 年 4 月 20 日のときは、1 月 1 日、2 月 2 日、3 月 3 日、4 月 4 日の 4 日

これらから見えてくることは、

  • 日の値が、月の値よりも小さいとき:月の値 - 1 が答え
  • 日の値が、月の値以上のとき:月の値が答え

ではないかということ。実際これが答えとなる。

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

int main() {
    int a, b;
    cin >> a >> b;
    if (b >= a) cout << a << endl;
    else cout << a - 1 << endl;
}