3
int dir[5] = {-1, 0, 1, 0, -1};5
int minFlips(vector<vector<int>> &mat) {6
int n = mat.size(), m = mat[0].size(), mask = 0;7
unordered_set<int> vis;9
for (int i = 0; i < n; i++)10
for (int j = 0; j < m; j++) mask |= (mat[i][j] << (i * m + j));20
if (cur == 0) return step;22
for (int i = 0; i < n; i++) {23
for (int j = 0; j < m; j++) {25
temp ^= (1 << (i * m + j));26
for (int k = 0; k < 4; k++) {28
int nj = j + dir[k + 1];29
if (min(ni, nj) >= 0 && ni < n && nj < m) {30
temp ^= (1 << (ni * m + nj));33
if (vis.find(temp) == vis.end()) {