ソースコード
#include<iostream>
using namespace std;
string s[8];
int now;
char c;
int dx[]={0,1,0,-1,1,1,-1,-1},dy[]={1,0,-1,0,1,-1,1,-1};
bool dfs(int x,int y,int r)
{
if(x<0||y<0||x>=8||y>=8)return false;
else if(s[x][y]==c)
{
s[x][y]=c;
return true;
}
else if(s[x][y]=='-')return false;
else if(dfs(x+dx[r],y+dy[r],r))
{
s[x][y]=c;
return true;
}
else return false;
}
main()
{
for(int i=0;i<8;i++)cin>>s[i];
string t;
cin>>now>>t;
c=now?'w':'b';
int x=t[1]-'0'-1,y=t[0]-'A';
s[x][y]=c;
for(int r=0;r<8;r++)
{
dfs(x+dx[r],y+dy[r],r);
}
for(int i=0;i<8;i++)cout<<s[i]<<endl;
}