Submission
Status:
P-xPxPxPPPPPxxxxxxxx
Subtask/Task Score:
40/100
Score: 40
User: wleo.lwo
Problemset: Othello
Language: cpp
Time: 0.002 second
Submitted On: 2026-08-10 21:43:41
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
vector<string> mp(8,string(8,' '));
int color = 1;
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
cin >> mp[i][j];
}
}
int mont[2]={0};
/*while(mont[0]!=-1 && mont[1]!=-1){
cin >> mont[0] >> mont[1];
if(mont[0]==-1 && mont[1]==-1) break;
else {
}
}*/
int x,y;
int bl=0;
int input=0;
while(input==0){
cin >> x >> y;
int bl=0;
if(x==-1 && y==-1) break;
if(color==1){
mp[x][y]='B';
int z=1;
//ซ้าย
while(bl==0){
if(y-z < 0) bl++;
if(mp[x][y-z]=='B'){
bl++;
while(z>1){
mp[x][y-z+1]='B';
z--;
}
}
if(mp[x][y-z]=='_') bl++;
z++;
}
z=1;
//ตะวันตกเฉียงเหนือ
while(bl==1){
if(x-z < 0 || y-z < 0) bl++;
if(mp[x-z][y-z]=='B'){
bl++;
while(z>1){
mp[x-z+1][y-z+1]='B';
z--;
}
}
if(mp[x-z][y-z]=='_') bl++;
z++;
}
z=1;
//บน
while(bl==2){
if(x-z < 0) bl++;
if(mp[x-z][y]=='B'){
bl++;
while(z>1){
mp[x-z+1][y]='B';
z--;
}
}
if(mp[x-z][y]=='_') bl++;
z++;
}
z=1;
//อีสาน
while(bl==3){
if(x-z < 0 || y+z > 7) bl++;
if(mp[x-z][y+z]=='B'){
bl++;
while(z>1){
mp[x-z+1][y+z-1]='B';
z--;
}
}
if(mp[x-z][y+z]=='_') bl++;
z++;
}
z=1;
//ขวา
while(bl==4){
if(y+z > 7) bl++;
if(mp[x][y+z]=='B'){
bl++;
while(z>1){
mp[x][y+z-1]='B';
z--;
}
}
if(mp[x][y+z]=='_') bl++;
z++;
}
z=1;
//ออกตก
while(bl==5){
if(x+z > 7 || y+z > 7) bl++;
if(mp[x+z][y+z]=='B'){
bl++;
while(z>1){
mp[x+z-1][y+z-1]='B';
z--;
}
}
if(mp[x+z][y+z]=='_') bl++;
z++;
}
z=1;
//ตก
while(bl==6){
if(x+z > 7) bl++;
if(mp[x+z][y]=='B'){
bl++;
while(z>1){
mp[x+z-1][y]='B';
z--;
}
}
if(mp[x+z][y]=='_') bl++;
z++;
}
z=1;
//ตกใต้
while(bl==7){
if(x+z > 7 || y-z < 0) bl++;
if(mp[x+z][y-z]=='B'){
bl++;
while(z>1){
mp[x+z-1][y-z+1]='B';
z--;
}
}
if(mp[x+z][y-z]=='_') bl++;
z++;
}
color*=-1;
continue;
}
if(color==-1){
mp[x][y]='W';
int z=1;
//ซ้าย
while(bl==0){
if(y-z < 0) bl++;
if(mp[x][y-z]=='W'){
bl++;
while(z>1){
mp[x][y-z+1]='W';
z--;
}
}
if(mp[x][y-z]=='_') bl++;
z++;
}
z=1;
//ตะวันตกเฉียงเหนือ
while(bl==1){
if(x-z < 0 || y-z < 0) bl++;
if(mp[x-z][y-z]=='W'){
bl++;
while(z>1){
mp[x-z+1][y-z+1]='W';
z--;
}
}
if(mp[x-z][y-z]=='_') bl++;
z++;
}
z=1;
//บน
while(bl==2){
if(x-z < 0) bl++;
if(mp[x-z][y]=='W'){
bl++;
while(z>1){
mp[x-z+1][y]='W';
z--;
}
}
if(mp[x-z][y]=='_') bl++;
z++;
}
z=1;
//อีสาน
while(bl==3){
if(x-z < 0 || y+z > 7) bl++;
if(mp[x-z][y+z]=='W'){
bl++;
while(z>1){
mp[x-z+1][y+z-1]='W';
z--;
}
}
if(mp[x-z][y+z]=='_') bl++;
z++;
}
z=1;
//ขวา
while(bl==4){
if(y+z > 7) bl++;
if(mp[x][y+z]=='W'){
bl++;
while(z>1){
mp[x][y+z-1]='W';
z--;
}
}
if(mp[x][y+z]=='_') bl++;
z++;
}
z=1;
//ออกตก
while(bl==5){
if(x+z > 7 || y+z > 7) bl++;
if(mp[x+z][y+z]=='W'){
bl++;
while(z>1){
mp[x+z-1][y+z-1]='W';
z--;
}
}
if(mp[x+z][y+z]=='_') bl++;
z++;
}
z=1;
//ตก
while(bl==6){
if(x+z > 7) bl++;
if(mp[x+z][y]=='W'){
bl++;
while(z>1){
mp[x+z-1][y]='W';
z--;
}
}
if(mp[x+z][y]=='_') bl++;
z++;
}
z=1;
//ตกใต้
while(bl==7){
if(x+z > 7 || y-z < 0) bl++;
if(mp[x+z][y-z]=='W'){
bl++;
while(z>1){
mp[x+z-1][y-z+1]='W';
z--;
}
}
if(mp[x+z][y-z]=='_') bl++;
z++;
}
color*=-1;
}
}
/*
________
________
__BBB_B_
___WWW__
__BW_WB_
___WWW__
__B_B_B_
________
*/
int BW[2]={0};
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
if(mp[i][j]=='B') BW[0]++;
if(mp[i][j]=='W') BW[1]++;
}
}
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
cout << mp[i][j];
}
cout << '\n';
}
if(BW[0]>BW[1])cout<<"black wins";
if(BW[0]<BW[1])cout<<"white wins";
if(BW[0]==BW[1])cout<<"braw";
return 0;
}