Yukicoder088 次はどっちだ

問題概要

オセロの盤面が与えられる。次の手番の色を予測せよ。

yukicoder088

解法

盤面にある個数の偶奇から次の番がわかる。 こういうのはxorで一行に収められる。

計算量:$O(1)$

ソース

    #include <bits/stdc++.h>
    using namespace std;
    #define FOR(i, s, e) for (int(i) = (s); (i) < (e); (i)++)
    
    int main() {
        cin.tie(0);
        ios_base::sync_with_stdio(false);
    
        string s; cin >> s;
        string y = "yukiko";  string o = "oda";
        vector<string>m(8);
    
        int cnt = 0;
        FOR(i, 0, 8) {
            cin >> m[i];
            FOR(j, 0, 8)if (m[i][j] == '.') {
                cnt++;
            }
        }
        cout << ((s != o) ^ (cnt % 2) ? y : o) << endl;
    
        return 0;
    }
Share Comments
̃Gg[͂ĂȃubN}[Nɒlj
comments powered by Disqus