Submission
Status:
--------------------
Subtask/Task Score:
0/100
Score: 0
User: iminyourwall
Problemset: Othello
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-12 14:31:21
#include <bits/stdc++.h>
using namespace std;
pair<int,int> ply;
char turn = 'B';
vector<string>mp;
char ch;
int mx[] = {1,1,1,0,0,-1,-1,-1};
int my[] = {-1,0,1,-1,1,-1,0,1};
void dbg(){
cout << "\n";
for (int i=0; i<=8; i++){
for (int j=0; j<=8; j++){
cout << mp[i][j];
}
cout << "\n";
}
//cout << "\n";
}
void check(int x, int y){
for (int i=0; i<8; i++){
if (mp[x+mx[i]][y+my[i]] == turn || mp[x+mx[i]][y+my[i]] == '_')continue;
else if (mp[x][y] == mp[x+2*mx[i]][y+2*my[i]]){
mp[x+mx[i]][y+my[i]] = turn;
check(x+(2*mx[i]), y+(2*my[i]));
}
}
}
void play(int x, int y){
if (mp[x][y] == turn)return;
mp[x][y] = turn;
check(x,y);
//dbg();
}
int main(){
for (int i=0; i<10; i++){
mp.push_back("");
for (int j=0; j<10; j++){
mp[i]+='_';
}
}
for (int i=1; i<=8; i++){
for (int j=1; j<=8; j++){
cin >> mp[i][j];
}
}
while (true){
cin >> ply.first >> ply.second;
if (ply.first<0 || ply.second <0 || ply.first > 7 || ply.second > 7)break;
play(ply.first+1, ply.second+1);
if (turn == 'B')turn = 'W';
else if (turn == 'W')turn = 'B';
}
int cw=0, cb=0;
for (int i=1; i<=8; i++){
for (int j=1; j<=8; j++){
if (mp[i][j] == 'B')cb++;
else if (mp[i][j] == 'W')cw++;
}
}
dbg();
if (cb > cw)cout << "Black wins";
else if (cb < cw)cout << "White wins";
else cout << "tie";
}