按照题目要求暴力模拟即可

参考代码

#include<bits/stdc++.h>
using namespace std;
int v[11][11];
int d[8][2]={1,0,-1,0,1,1,1,-1,0,1,0,-1,-1,-1,-1,1};
bool slove(int x,int y,int s)
{
    bool flag=0;
    for(int i=0;i<8;i++)
    {
        int tx=x+d[i][0];
        int ty=y+d[i][1];
        if(v[tx][ty]!=(!s))
        continue;
        while(v[tx+d[i][0]][ty+d[i][1]]==(!s))
        tx+=d[i][0],ty+=d[i][1];
        if(v[tx+d[i][0]][ty+d[i][1]]==s)
        {
            tx=x+d[i][0];
            ty=y+d[i][1];
            v[tx][ty]=s;
            while(v[tx+d[i][0]][ty+d[i][1]]==(!s))
            tx+=d[i][0],ty+=d[i][1],v[tx][ty]=s;
            flag=1;
        }
    }
    return flag;
}
int main()
{
    memset(v,-1,sizeof v);
    v[4][4]=v[5][5]=0;
    v[5][4]=v[4][5]=1;
    int x,y,t;
    t=1;
    while(~scanf("%d%d",&x,&y))
    {
        if(slove(x,y,t))
        v[x][y]=t,t=!t;
        else
        if(slove(x,y,!t))
        v[x][y]=!t;
        else
        break;
    }
    int h,b;
    h=b=0;
    for(int i=1;i<=8;i++)
    for(int j=1;j<=8;j++)
    if(v[i][j]==1)
    h++;
    else
    if(v[i][j]==0)
    b++;
    printf("%d:%d\n",h,b);
    return 0;
}

来自用户程旭1111