C++競プロ学習日記(仮)

( 学習記録であり解説Blogではないです )

ABC131 A - Security|std:: adjacent_find|C++

A - Security を解きました。

std::adjacent_find

std::adjacent_find は隣接する要素で条件を満たしている最初の要素を検索してくれます *1

[first,last) 内にあるイテレータ i について、*i == *(i + 1) となる要素を見つけた場合、
最初のイテレータを返します。
見つからなかった場合は last を返します。

これを利用して、隣接する要素が同じ値かどうかを判定しました。
std::adjacent_find は便利

#include <bits/stdc++.h>
using namespace std;
#define ALL(n) begin(n),end(n)
struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star;
int main()
{
    string S;
    cin >> S;
    cout << (S.end() == adjacent_find(ALL(S)) ? "Good" : "Bad") << endl;
    return 0;
}