Submission
Status:
-P---P---P--P------P
Subtask/Task Score:
25/100
Score: 25
User: Poon
Problemset: Othello
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-10 22:34:06
#include <iostream>
using namespace std;
int main()
{
char grid[8][8];
int on=0;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
cin>>grid[i][j];
if(grid[i][j]=='B'||grid[i][j]=='W')
{
on++;
}
}
}
int turn=1;
for(;on<=64;on++)
{
int x,y;
cin>>x>>y;
if(x==-1&&y==-1)
{
break;
}
if(turn==1)
{
int c[8]={0};
for(int i=x,j=y+1;i<=7&&i>=0&&j<=7&&j>=0;j++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[0]=1;
}
}
if(c[0]==1)
{
for(int i=x,j=y;;j++)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
for(int i=x+1,j=y;i<=7&&i>=0&&j<=7&&j>=0;i++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[2]=1;
}
}
if(c[2]==1)
{
for(int i=x,j=y;;i++)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
for(int i=x-1,j=y;i<=7&&i>=0&&j<=7&&j>=0;i--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[3]=1;
}
}
if(c[3]==1)
{
for(int i=x,j=y;;i--)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
for(int i=x+1,j=y+1;i<=7&&i>=0&&j<=7&&j>=0;j++,i++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[4]=1;
}
}
if(c[4]==1)
{
for(int i=x,j=y;;j++,i++)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
for(int i=x+1,j=y-1;i<=7&&i>=0&&j<=7&&j>=0;i++,j--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[5]=1;
}
}
if(c[5]==1)
{
for(int i=x,j=y;;i++,j--)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
for(int i=x-1,j=y+1;i<=7&&i>=0&&j<=7&&j>=0;i--,j++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[6]=1;
}
}
if(c[6]==1)
{
for(int i=x,j=y;;i--,j++)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
for(int i=x-1,j=y-1;i<=7&&i>=0&&j<=7&&j>=0;i--,j--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[7]=1;
}
}
if(c[7]==1)
{
for(int i=x,j=y;;i--,j--)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
for(int i=x,j=y-1;i<=7&&i>=0&&j<=7&&j>=0;j--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='W')
{
continue;
}
if(grid[i][j]=='B')
{
c[1]=1;
}
}
if(c[1]==1)
{
for(int i=x,j=y;;j--)
{
if(grid[i][j]=='B')
{
break;
}
grid[i][j]='B';
}
}
turn=2;
}
else
{
int c[8]={0};
for(int i=x,j=y+1;i<=7&&i>=0&&j<=7&&j>=0;j++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[0]=1;
}
}
if(c[0]==1)
{
for(int i=x,j=y;;j++)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
for(int i=x+1,j=y;i<=7&&i>=0&&j<=7&&j>=0;i++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[2]=1;
}
}
if(c[2]==1)
{
for(int i=x,j=y;;i++)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
for(int i=x-1,j=y;i<=7&&i>=0&&j<=7&&j>=0;i--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[3]=1;
}
}
if(c[3]==1)
{
for(int i=x,j=y;;i--)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
for(int i=x+1,j=y+1;i<=7&&i>=0&&j<=7&&j>=0;j++,i++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[4]=1;
}
}
if(c[4]==1)
{
for(int i=x,j=y;;j++,i++)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
for(int i=x+1,j=y-1;i<=7&&i>=0&&j<=7&&j>=0;i++,j--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[5]=1;
}
}
if(c[5]==1)
{
for(int i=x,j=y;;i++,j--)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
for(int i=x-1,j=y+1;i<=7&&i>=0&&j<=7&&j>=0;i--,j++)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[6]=1;
}
}
if(c[6]==1)
{
for(int i=x,j=y;;i--,j++)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
for(int i=x-1,j=y-1;i<=7&&i>=0&&j<=7&&j>=0;i--,j--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[7]=1;
}
}
if(c[7]==1)
{
for(int i=x,j=y;;i--,j--)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
for(int i=x,j=y-1;i<=7&&i>=0&&j<=7&&j>=0;j--)
{
if(grid[i][j]=='_')
{
break;
}
if(grid[i][j]=='B')
{
continue;
}
if(grid[i][j]=='W')
{
c[1]=1;
}
}
if(c[1]==1)
{
for(int i=x,j=y;;j--)
{
if(grid[i][j]=='W')
{
break;
}
grid[i][j]='W';
}
}
turn=1;
}
}
int a=0,b=0;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
if(grid[i][j]=='B')
{
a++;
}
if(grid[i][j]=='W')
{
b++;
}
cout<<grid[i][j];
}
cout<<"\n";
}
if(a>b)
{
cout<<"black wins";
}
else if(a<b)
{
cout<<"white wins";
}
else
{
cout<<"draw";
}
return 0;
}