Codeforces #7
レーティングが1632になったわーい.
topcoderもこれくらいになりたい.
出来は簡単な方の3問しか解けなかったけど…
id:nodchipさんの日記を見ているとA問題について,2^16通り試すと書いてあったんだけど,
1行ごとに見ていって1行全部黒かったら白く塗る,としてから,
1列ごとに見ていって黒いところが残ってたら白く塗る,
としてあげれば元は何回黒く塗られていたかわかると思います.
うまく証明出来ないけど…
char chs[8][9]; int main() { REP(i, 8) gets(chs[i]); int cnt = 0; REP(i, 8) { bool all = true; REP(j, 8) if(chs[i][j] == 'W') { all = false; break; } if(all) { REP(j, 8) chs[i][j] = 'W'; ++cnt; } } REP(j, 8) { bool any = false; REP(i, 8) if(chs[i][j] == 'B') { any = true; break; } if(any) ++cnt; } cout << cnt << endl; return 0; }