Submission

Status:

PPPPPP-PPPPP-P----PP

Subtask/Task Score:

70/100

Score: 70

User: peilin

Problemset: Othello

Language: cpp

Time: 0.005 second

Submitted On: 2026-09-30 11:04:05

#include <iostream>
#include <vector>
using namespace std;

int main() {
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(nullptr);
    vector<string> a(8);

    for (int i=0; i<8; i++) {
        cin >> a[i];
	}
    int x,y;
    int t = 0;

    int dx[] = {-1,-1,-1,0,0,1,1,1};
    int dy[] = {-1,0,1,-1,1,-1,0,1};

    while (cin >> x >> y) {

        if(x==-1 && y==-1) {
            break;
    	}

        char b,c;

        if(t%2==0) {
            b='B';
            c='W';
        }
        else {
            b='W';
            c='B';
        }
        a[x][y]=b;

        for (int d=0; d<8; d++) {
            int i=x+dx[d];
            int j=y+dy[d];

            while (i>=0 && i<8 &&
                   j>=0 && j<8 &&
                   a[i][j]==c) {
                i+=dx[d];
                j+=dy[d];
            }
            if(i>=0 && i<8 &&
               j>=0 && j<8 &&
                a[i][j]==b) {
                i-=dx[d];
                j-=dy[d];

                while(i!=x || j!=y) {
                    a[i][j]=b;
                    i-=dx[d];
                    j-=dy[d];
                }
            }
        }
        t++;
    }
    int B=0, W=0;

    for(int i=0; i<8; i++) {
        cout << a[i] << "\n";

        for(int j=0; j<8; j++) {
            if(a[i][j]=='B')
                B++;
            else if(a[i][j]=='W')
                W++;
        }
    }

    if(B>W)
        cout << "black wins";
    else if(W>B)
        cout << "white wins";
    else
        cout << "draw";
        
    return 0;
}