Official

A - Rainy Season Editorial by satashun


そもそも天気の組合せは、\(1,2,3\) 日目がそれぞれ晴れ、雨かどうかで \(2^3=8\) 通りしかないので、\(8\) 通りの場合分けを書けば正答することができます。

例えば \(3\) 日より長い場合の解法など繋がるような場合分けをすると、

  • \(3\) 日連続しているかどうか
  • \(2\) 日連続しているかどうか
  • \(1\) 日連続しているかどうか
  • それ以外(\(0\)日)

の順にチェックしていくと正しく判定することができ、場合分けも間違えにくいと思います。

#include <iostream>
using namespace std;

int main() {
    string S;
    cin >> S;
    bool p = S[0] == 'R';
    bool q = S[1] == 'R';
    bool r = S[2] == 'R';
    if (p and q and r) {
        cout << 3 << endl;
    } else if ((p and q) or (q and r)) {
        cout << 2 << endl;
    } else if (p or q or r) {
        cout << 1 << endl;
    } else {
        cout << 0 << endl;
    }

    return 0;
}

posted:
last update: