やるだけ。
int f(vector<string> v)
{
int sum = 0;
for (int i = 0; i < v.size(); ++i) {
for (int j = 0; j < v[i].size(); ++j) {
sum += v[i][j] == '1';
}
}
return sum;
}
class XorBoardDivTwo {
public:
int theMax(vector <string> B)
{
int mx = 0;
const int H = B.size();
const int W = B[0].size();
for (int i = 0; i < H; ++i) {
for (int j = 0; j < W; ++j) {
for (int k = 0; k < W; ++k) B[i][k] = (B[i][k] == '0' ? '1' : '0');
for (int k = 0; k < H; ++k) B[k][j] = (B[k][j] == '0' ? '1' : '0');
mx = max(mx, f(B));
for (int k = 0; k < W; ++k) B[i][k] = (B[i][k] == '0' ? '1' : '0');
for (int k = 0; k < H; ++k) B[k][j] = (B[k][j] == '0' ? '1' : '0');
}
}
return mx;
}
};