UTPC2013 A UTPC
コンテストは凄くどうでもいいとこでバグを出してハマって、
デバッグで時間を浪費してしまい、
面白いほうの問題を考察する時間がなくなってしまったのが残念だった。
問題
日本語なので本文参照(http://utpc2013.contest.atcoder.jp/tasks/utpc2013_01)
穴の数が同じアルファベットを同一視するとき、
与えられた文字列がUTPCに等しいかを答えよ。
制約条件
入力は4文字の英大文字
方針
問題文中で各アルファベットの穴の数が明示されているのでコピペすると楽。
なるべく簡単でバグが出にくいような実装を選びましょう。
ソースコード
string zero = "CEFGHIJKLMNSTUVWXYZ"; string one = "ADOPQR"; string two = "B"; bool go(){ string s, t = "UTPC"; cin >> s; rep(i, s.size()){ if(count(all(zero), s[i]) != count(all(zero), t[i])) return 0; if(count(all(one), s[i]) != count(all(one), t[i])) return 0; if(count(all(two), s[i]) != count(all(two), t[i])) return 0; } return 1; } int main(){ cout << (go() ? "yes" : "no") << endl; return 0; }