Yukicoder026 シャッフルゲーム

問題概要

カップが3つあり、1つが正解のカップである。 2つのカップの位置$(p,q)$を$M$回交換する。 交換し終わったあと、正解のカップの位置はどこか。

$N\leqq3$、$M\leqq200$

yukicoder026

解法

愚直にswapする。

計算量:$O(M)$

ソース

    #include <bits/stdc++.h>
    using namespace std;
    
    using VS = vector<string>;    using LL = long long;
    using VI = vector<int>;       using VVI = vector<VI>;
    #define FOR(i, s, e) for (int(i) = (s); (i) < (e); (i)++)
    
    LL N, M;
    
    LL ans = 0LL;
    
    int main() {
        cin.tie(0);
        ios_base::sync_with_stdio(false);
    
        cin >> N >> M;
        VI a(4, 0);
        a[N] = 1;
        FOR(i, 0, M) {
            int p, q; cin >> p >> q;
            swap(a[p], a[q]);
        }
        FOR(i, 0, 4) {
            if (a[i])ans = i;
        }
        cout << ans << "\n";
    
        return 0;
    }
Share Comments
̃Gg[͂ĂȃubN}[Nɒlj
comments powered by Disqus