Submission

Status:

P---P--P-----------P

Subtask/Task Score:

20/100

Score: 20

User: pxsit

Problemset: Othello

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-06 17:52:16

#include <bits/stdc++.h>
using namespace std;

int main(){
	char grid[8][8];
	for(int i=0;i<8;i++){
		for(int j=0;j<8;j++){
			cin >> grid[i][j];
		}
	}
	bool black_color = true;
	while(true){
		int r,c;
		cin >> r >> c;
		if(r == -1 || c == -1) break;
		char cur;
		if(black_color) cur = 'B';
		else cur = 'W';
		grid[r][c] = cur;
		if(r > 1 && grid[r-2][c] == cur) grid[r-1][c] = cur;
		if(c > 1 && grid[r][c-2] == cur) grid[r][c-1] = cur;
		if(r < 6 && grid[r+2][c] == cur) grid[r+1][c] = cur;
		if(c < 6 && grid[r][c+2] == cur) grid[r][c+1] = cur;
		if(r > 1 && c > 1 && grid[r-2][c-2] == cur) grid[r-1][c-1] = cur;
		if(r > 1 && c < 6 && grid[r-2][c+2] == cur) grid[r-1][c+1] = cur;
		if(r < 6 && c < 6 && grid[r+2][c+2] == cur) grid[r+1][c+1] = cur;
		if(r < 6 && c > 1 && grid[r+2][c-2] == cur) grid[r+1][c-1] = cur;
		int black = 0,white = 0;
		for(int i=0;i<8;i++){
			for(int j=0;j<8;j++){
				if(grid[i][j] == 'W') white++;
				else if(grid[i][j] == 'B') black++;
			}
		}
		if(black+white == 64) break;
	}
	int black = 0,white = 0;
	for(int i=0;i<8;i++){
		for(int j=0;j<8;j++){
			cout << grid[i][j];
			if(grid[i][j] == 'W') white++;
			else if(grid[i][j] == 'B') black++;
		}
		cout << '\n';
	}
	if(black == white) cout << "draw";
	else if(black > white) cout << "black wins";
	else cout << "white wins";
}