ソースコード
#include <bits/stdc++.h>
using namespace std;
long long C, X, Y, s[10][10], d[9] = {0, 1, 0, -1, -1, 1, 1, -1, 0};
char S[9];
bool se(int x, int y, int I){
if(x < 0 || y < 0 || x > 9 || y > 9)return false;
if(s[x][y]){
if(s[x][y] == C + 1){
return true;
}
if(se(x + d[I], y + d[I + 1], I)){
s[x][y] = C + 1;
return true;
}
}
return false;
}
int main(){
for(int i = 0; i < 8; ++i){
scanf("%s", S);
for(int j = 0; j < 8; ++j){
s[i + 1][j + 1] = (S[j] != '-') + (S[j] == 'w');
}
}
scanf("%lld %c%lld", &C, &S[0], &Y);
X = S[0] - 64;
s[Y][X] = C + 1;
for(int i = 0; i < 8; ++i){
se(Y + d[i], X + d[i + 1], i);
}
for(int i = 0; i < 8; ++i){
for(int j = 0; j < 8; ++j){
cout << (s[i + 1][j + 1] ? s[i + 1][j + 1] ^ 1 ? 'w' : 'b' : '-');
}
cout << endl;
}
}