Submission

Status:

PPPPPP-PPPPP-P----PP

Subtask/Task Score:

70/100

Score: 70

User: peilin

Problemset: Othello

Language: cpp

Time: 0.003 second

Submitted On: 2026-09-30 21:09:46

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

int main() {
    int x, y;
    vector<string> arr(8);

    for(int i = 0; i < 8; i++)
        cin >> arr[i];

    int t = 0;

    while(cin >> x >> y) {

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

        char c;

        if(t % 2 == 0)
            c = 'B';
        else
            c = 'W';

        arr[x][y] = c;

        int j = y + 1;
        while(j < 8 && arr[x][j] != '_') {
            if(arr[x][j] == c) {
                for(int k = y + 1; k < j; k++)
                    arr[x][k] = c;
                break;
            }
            j++;
        }

        j = y - 1;
        while(j >= 0 && arr[x][j] != '_') {
            if(arr[x][j] == c) {
                for(int k = y - 1; k > j; k--)
                    arr[x][k] = c;
                break;
            }
            j--;
        }

        int i = x + 1;
        while(i < 8 && arr[i][y] != '_') {
            if(arr[i][y] == c) {
                for(int k = x + 1; k < i; k++)
                    arr[k][y] = c;
                break;
            }
            i++;
        }

        i = x - 1;
        while(i >= 0 && arr[i][y] != '_') {
            if(arr[i][y] == c) {
                for(int k = x - 1; k > i; k--)
                    arr[k][y] = c;
                break;
            }
            i--;
        }

        i = x + 1;
        j = y + 1;

        while(i < 8 && j < 8 && arr[i][j] != '_') {
            if(arr[i][j] == c) {
                int a = x + 1;
                int b = y + 1;

                while(a < i && b < j) {
                    arr[a][b] = c;
                    a++;
                    b++;
                }
                break;
            }
            i++;
            j++;
        }

        i = x - 1;
        j = y - 1;

        while(i >= 0 && j >= 0 && arr[i][j] != '_') {
            if(arr[i][j] == c) {
                int a = x - 1;
                int b = y - 1;

                while(a > i && b > j) {
                    arr[a][b] = c;
                    a--;
                    b--;
                }
                break;
            }
            i--;
            j--;
        }

        i = x - 1;
        j = y + 1;

        while(i >= 0 && j < 8 && arr[i][j] != '_') {
            if(arr[i][j] == c) {
                int a = x - 1;
                int b = y + 1;

                while(a > i && b < j) {
                    arr[a][b] = c;
                    a--;
                    b++;
                }
                break;
            }
            i--;
            j++;
        }

        i = x + 1;
        j = y - 1;

        while(i < 8 && j >= 0 && arr[i][j] != '_') {
            if(arr[i][j] == c) {
                int a = x + 1;
                int b = y - 1;

                while(a < i && b > j) {
                    arr[a][b] = c;
                    a++;
                    b--;
                }
                break;
            }
            i++;
            j--;
        }

        t++;
    }

    int B = 0;
    int W = 0;

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

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

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

    return 0;
}