B - 手芸王 / AtCoderBeginnerContest#023

abc023.contest.atcoder.jp

#include <iostream>
#include <string>
using namespace std;

void Solve(int n)   {
    string s, str="b";
    int answer;

    cin >> s;
    for (int i=1; i<=n; ++i)  {
        if (i%3 == 1)   str='a'+str+'c';
        else if (i%3 == 2)  str='c'+str+'a';
        else    str='b'+str+'b';
        if (s == str)   {
            answer=i;
            break;
        }
        if ( s.length() < str.length() )    {
            answer=-1;
            break;
        }
    }
    if (s == "b")   answer=0;
    cout << answer << endl;
}

int main(void)  {
    int n;

    cin >> n;
    Solve(n);
    return 0;
}

問題文に書かれている通り実装する。入力した文字列と同じになれば、それまでの回数を表示。
〜了〜