よじろめ覚書

私の理解度重視のソースコードです。

ABC045B - 3人でカードゲームイージー / Card Game for Three (ABC Edit)

問題:B - 3人でカードゲームイージー / Card Game for Three (ABC Edit)

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

#define REP(i, n) for (int i = 0; i < (n); ++i)

int main(void) {
    string s_a, s_b, s_c;
    char card, flg = 'Z';
    int length = 0;

    cin.tie(0);
    ios::sync_with_stdio(false);
    cin >> s_a;
    cin >> s_b;
    cin >> s_c;

    card = s_a[0];
    s_a.erase(0, 1);
    length = s_a.length() + s_b.length() + s_c.length();
    REP(i, length) {
        switch(card) {
            case 'a':
                if (s_a.length() > 0) {
                    card = s_a[0];
                    s_a.erase(0, 1);
                } else {
                    flg = 'A';
                }
                break;
            case 'b':
                if (s_b.length() > 0) {
                    card = s_b[0];
                    s_b.erase(0, 1);
                } else {
                    flg = 'B';
                }
                break;
            case 'c':
                if (s_c.length() > 0) {
                    card = s_c[0];
                    s_c.erase(0, 1);
                } else {
                    flg = 'C';
                }
                break;
        }
        if (flg != 'Z') {
            cout << flg << "\n";
            break;
        }
    }

    return 0;
}