https://yukicoder.me/problems/no/582
解説
https://yukicoder.me/submissions/212274
AもBも1個ずつ削れるのであれば、遇奇によってどちらが勝つかが決まる。
今回はBが1個か2個削れるため、Bが偶奇を支配することができればBが常に勝つことができる。
そのため、Aが勝てる状況のみを考える。
- 全て1で総和が奇数
- 2が1つで他が全て1つで奇数個
typedef long long ll; int N; //--------------------------------------------------------------------------------------------------- string solve() { vector<int> v; ll sm = 0; rep(i, 0, N) { int x; cin >> x; if (x) v.push_back(x); sm += x; } sort(v.begin(), v.end()); if (sm == 0) return "B"; if (v.back() == 1) { if (sm % 2 == 0) return "B"; else return "A"; } map<int, int> cnt; fore(x, v) cnt[x]++; if (cnt[2] == 1 and v.size() == (cnt[1] + cnt[2]) and cnt[1] % 2 == 1) return "A"; return "B"; } //--------------------------------------------------------------------------------------------------- void _main() { cin >> N; cout << solve() << endl; }