按照题目要求暴力模拟即可
参考代码
#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