Submission
Status:
PPPPPP-PPPPP-P----PP
Subtask/Task Score:
70/100
Score: 70
User: EXTRA
Problemset: Othello
Language: cpp
Time: 0.002 second
Submitted On: 2025-11-14 11:23:18
#include <bits/stdc++.h>
using namespace std;
int jaldak=64,wsco=0,bs=0;
char arr[10][10];
bool same;
char ph,cn='B';
int x=0,y=0,c;
void down(){
c=0;
while(same){
if(arr[x+2+c][y+1]!=cn&&arr[x+2+c][y+1]!='_'){
c++;
}else if(arr[x+2+c][y+1]==cn){
for(int n=0;n<c;n++){
arr[x+2+n][y+1]=cn;
}
same=0;
}else{
same=0;
}
}
}
void up(){
c=0;
while(same){
if(arr[x-c][y+1]!=cn&&arr[x-c][y+1]!='_'){
c++;
}else if(arr[x-c][y+1]==cn){
for(int n=0;n<c;n++){
arr[x-n][y+1]=cn;
}
same=0;
}else{
same=0;
}
}
}
void left(){
c=0;
while(same){
if(arr[x+1][y-c]!=cn&&arr[x+1][y-c]!='_'){
c++;
}else if(arr[x+1][y-c]==cn){
for(int n=0;n<c;n++){
arr[x+1][y-n]=cn;
}
same=0;
}else{
same=0;
}
}
}
void right(){
c=0;
while(same){
if(arr[x+1][y+2+c]!=cn&&arr[x+1][y+2+c]!='_'){
c++;
}else if(arr[x+1][y+2+c]==cn){
for(int n=0;n<c;n++){
arr[x+1][y+2+n]=cn;
}
same=0;
}else{
same=0;
}
}
}
void NE(){
c=0;
while(same){
if(arr[x-c][y+2+c]!=cn&&arr[x-c][y+2+c]!='_'){
c++;
}else if(arr[x-c][y+2+c]==cn){
for(int n=0;n<c;n++){
arr[x-n][y+2+n]=cn;
}
same=0;
}else{
same=0;
}
}
}
void NW(){
c=0;
while(same){
if(arr[x-c][y-c]!=cn&&arr[x-c][y-c]!='_'){
c++;
}else if(arr[x-c][y-c]==cn){
for(int n=0;n<c;n++){
arr[x-n][y-n]=cn;
}
same=0;
}else{
same=0;
}
}
}
void SE(){
c=0;
while(same){
if(arr[x+2+c][y+2+c]!=cn&&arr[x+2+c][y+2+c]!='_'){
c++;
}else if(arr[x+2+c][y+2+c]==cn){
for(int n=0;n<c;n++){
arr[x+2+n][y+2+n]=cn;
}
same=0;
}else{
same=0;
}
}
}
void SW(){
c=0;
while(same){
if(arr[x+2+c][y-c]!=cn&&arr[x+2+c][y-c]!='_'){
c++;
}else if(arr[x+2+c][y-c]==cn){
for(int n=0;n<c;n++){
arr[x+2+n][y-n]=cn;
}
same=0;
}else{
same=0;
}
}
}
int main() {
memset(arr,'_',sizeof(arr));
for(int i=1;i<9;i++){
for(int j=1;j<9;j++){
cin>>ph;
arr[i][j]=ph;
if(arr[i][j]!='_'){
jaldak--;
}
}
}
cin>>x>>y;
jaldak--;
while(x!=-1&&y!=-1){
arr[x+1][y+1]=cn;
same=1;
while(same){
down();
}
same=1;
while(same){
up();
}
same=1;
while(same){
left();
}
same=1;
while (same){
right();
}
same=1;
while(same){
NE();
}
same=1;
while(same){
NW();
}
same=1;
while(same){
SE();
}
same=1;
while(same){
SW();
}
if(cn=='B'){
cn='W';
}else{
cn='B';
}
if(jaldak==0){
x=-1;
y=-1;
}else{
jaldak--;
cin>>x>>y;
}
}
for(int i=1;i<9;i++){
for(int j=1;j<9;j++){
cout<<arr[i][j];
if(arr[i][j]=='W'){
wsco++;
}else if(arr[i][j]=='B'){
bs++;
}
}
cout<<endl;
}
if(wsco>bs){
cout<<"white wins";
}else if(bs>wsco){
cout<<"black wins";
}else{
cout<<"draw";
}
cout<<endl;
}