問題概要
カップが3つあり、1つが正解のカップである。 2つのカップの位置$(p,q)$を$M$回交換する。 交換し終わったあと、正解のカップの位置はどこか。
$N\leqq3$、$M\leqq200$
解法
愚直に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; }