Submission
Status:
PPPPPP-P-PPP-P----PP
Subtask/Task Score:
65/100
Score: 65
User: idiotkill
Problemset: Othello
Language: cpp
Time: 0.004 second
Submitted On: 2026-09-27 17:05:14
// Online C++ compiler (editor)
// Write and run C++ online using this editor. 1=B 2= W
#include <bits/stdc++.h>
using namespace std;
int x[8][8]={0};
void checkotelloblack(int r,int c,int color){
//sideways left
for(int i=c-1;i>=0;i--){
if (x[r][i]==color){
for(int j=i;j<c;j++){
x[r][j]=color;
}
break;
}else if(x[r][i]==0){
break;
}
}
//sideways right
for(int i=c+1;i<8;i++){
if (x[r][i]==color){
for(int j=i;j>c;j--){
x[r][j]=color;
}
break;
}else if(x[r][i]==0){
break;
}
}
//up
for(int i=r-1;i>=0;i--){
if (x[i][c]==color){
for(int j=i;j<r;j++){
x[j][c]=color;
}
break;
}else if(x[i][c]==0){
break;
}
}
//down
for(int i=r+1;i<8;i++){
if (x[i][c]==color){
for(int j=i;j>r;j--){
x[j][c]=color;
}
break;
}else if(x[i][c]==0){
break;
}
}
//up left
for(int i=r-1,j=c-1; i>=0 && j>=0 ; i--,j--){
if (x[i][j]==color){
for(int i2=r-1,j2=c-1; i2>i && j2>j ; i--,j--){
x[i2][j2]=color;
}
break;
}else if(x[i][j]==0){
break;
}
}
//down right
for(int i=r+1,j=c+1; i<8 && j<8 ; i++,j++){
if (x[i][j]==color){
for(int i2=r+1,j2=c+1; i2<i && j2<j ; i++,j++){
x[i2][j2]=color;
}
break;
}else if(x[i][j]==0){
break;
}
}
//up right
for(int i=r-1,j=c+1; i>=0 && j<8 ; i--,j++){
if (x[i][j]==color){
for(int i2=r-1,j2=c+1; i2>i && j2<j ; i--,j++){
x[i2][j2]=color;
}
break;
}else if(x[i][j]==0){
break;
}
}
//down left
for(int i=r+1,j=c-1; i<8 && j>=0 ; i++,j--){
if (x[i][j]==color){
for(int i2=r+1,j2=c-1; i2<i && j2>j ; i++,j--){
x[i2][j2]=color;
}
break;
}else if(x[i][j]==0){
break;
}
}
}
int main() {
int checkmaxboard=0;
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
char temp;
cin>>temp;
if(temp=='B'){
x[i][j]=1;
checkmaxboard++;
}else if(temp == 'W'){
x[i][j]=2;
checkmaxboard++;
}
}
}
int a,b,turn=0;
while(a!=-1 and b!=-1)
{
cin>>a>>b;
if(a!=-1 and b!=-1){
if(turn%2==0){
x[a][b]=1;
checkotelloblack(a,b,1);
checkmaxboard++;
}else{
x[a][b]=2;
checkotelloblack(a,b,2);
checkmaxboard++;
}
}
turn++;
if(checkmaxboard==64){
break;
}
}
int countw=0,countb=0 ;
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
if(x[i][j]==0){
cout<<"_" ;
}else if(x[i][j]==1){
cout<<"B" ;
countb++;
}else{
cout<<"W" ;
countw++;
}
}
cout<<endl;
}
if(countw>countb){
cout<<"white wins";
return 0;
}else if(countw==countb){
cout<<"draw";
return 0;
}
else{
cout<<"black wins";
return 0;
}
}