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;
}