AOJ 2575 D's Ambition
問題
解法
8文字ずつ読んで"AIDUNYAN"のアナグラムだったら"AIZUNYAN"に置き換える。 実装するだけ、バグを埋めないようにすればいい。アナグラムの判定はアルファベットごとに数えたり、"AIDUNYAN"のアナグラムを先に生成するとか
心臓に悪いコード
string D; char ana[] = {"IDUYNA"}; int main(){ cin >> D; rep(i, (int)D.size()-7){ map<char, int>m; rep(p, 8){ m[D[p+i]]++; } int f = 1; rep(i, 4) if(m[ana[i]] != 1) f = 0; REP(i, 4, 6) if(m[ana[i]] != 2) f = 0; if(f){ D.erase(i, 8); D.insert(i, "AIZUNYAN"); i += 7; } } cout << D << endl; return 0; }