// OB会夏合宿2011 Day4 B : お菓子の魔女 #include #include using namespace std; int dx[] = {0,1,1,1,0,-1,-1,-1}; int dy[] = {-1,-1,0,1,1,1,0,-1}; int main(){ string board[8]; while(cin >> board[0]){ for(int i=1;i<8;i++) cin >> board[i]; // 終了判定の実装が面倒なので300ターンくらい回しておく for(int c=0;c<300;c++){ // 自分の手駒 char m = c%2 ? 'x' : 'o'; // 相手の手駒 char o = c%2 ? 'o' : 'x'; int cx = 0, cy = 0, cnt = 0, dir = 0; for(int ix=0;ix<8;ix++){ for(int iy=0;iy<8;iy++){ // 魔女のターンなら走査順を逆転 int x = c%2 ? 7-ix : ix; int y = c%2 ? 7-iy : iy; if(board[x][y]!='.') continue; int cur = 0, rev = 0; for(int d=0;d<8;d++){ int nx = x+dx[d], ny = y+dy[d]; int tmp = 0; while(0<=nx&&nx<8&&0<=ny&&ny<8&&board[nx][ny]==o){ tmp++; nx += dx[d]; ny += dy[d]; } if(0<=nx&&nx<8&&0<=ny&&ny<8&&board[nx][ny]==m){ cur += tmp; rev |= (1<