class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param A int整型vector<vector<>> 
     * @param f int整型vector<vector<>> 
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > flipChess(vector<vector<int> >& A, vector<vector<int> >& f) {
        // write code here
        
        for(int i=0; i<f.size(); i++){
            int x = f[i][0]-1;
            int y = f[i][1]-1;
            fanzhuan(A, x, y);
        }
        
        return A;
    }
    
    void fanzhuan(vector<vector<int> >& A, int x, int y){
        if(x-1 >=0 && y>=0 && x-1<4 && y<4){
            A[x-1][y] = !A[x-1][y];
        }
        
        if(x+1 >=0 && y>=0 && x+1<4 && y<4){
            A[x+1][y] = !A[x+1][y];
        }
        
        if(x>=0 && y-1>=0 && x<4 && y-1<4){
            A[x][y-1] = !A[x][y-1];
        }
        
        if(x>=0 && y+1>=0 && x<4 && y+1<4){
            A[x][y+1] = !A[x][y+1];
        }
        
    }
    
};