| 12
 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))
 )
 );
 }
 };
 
 |