1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   | class Solution { public:     int minimumOperationsToWriteY(vector<vector<int>>& grid) {         int y[3] = {0}, cnt[3] = {0}, n = grid.size();         for(int i = 0; i < n; i++) {             for(int j = 0; j < n; j++) {                 cnt[grid[i][j]]++;                 if((i == j && j <= n/2) || (i+j == n-1 && j >= n/2) || (j == n/2 && i >= n/2)) {                     y[grid[i][j]]++;                 }             }         }         auto cal = [&](int y_val, int noty_val, int other_val) {             return y[noty_val] + y[other_val] + cnt[y_val] + cnt[other_val] - y[y_val] - y[other_val];         };         return min(             min(cal(0, 1, 2), cal(0, 2, 1)),              min(                 min(cal(1, 0, 2), cal(1, 2, 0)),                  min(cal(2, 0, 1), cal(2, 1, 0))             )         );     } };
  |