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

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

AtCoder ABC 312 A - Chord (灰色, 100 点)

for 文や set/map を使えると少し楽になるけど、使えなくても解ける。

問題概要

3 文字の文字列  S が与えられる。

 S が ACE、BDF、CEG、DFA、EGB、FAC、GBD のいずれかと等しいとき Yes を、そうでないとき No を出力してください。

解法 (1):if 文で頑張る

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

int main() {
    string S;
    cin >> S;
    if (S == "ACE" || S == "BDF" || S == "CEG" || S == "DFA"
        || S == "EGB" || S == "FAC" || S == "GBD") {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
}

解法 (2):set に入れる

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

int main() {
    set<string> se({"ACE", "BDF", "CEG", "DFA", "EGB", "FAC", "GBD"});
    string S;
    cin >> S;
    if (se.count(S)) cout << "Yes" << endl;
    else cout << "No" << endl;
}