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