SRM311 div1 easy

全く同じ領域を二度もflipさせることはなさそうだ、ということに気付けば、どん欲法でやっていけば良さそうということが分かる.flipする順序は関係ないので、[0, 0]から順番にtraverseしていけばよさそう.
っていうのがぱって浮かんだらな〜。複雑そうだったのでパニクった.

  int minPushes(vector <string> a, vector <string> b) {
    if(a == b) return 0;
    int ans = 0;
    int row = a.size(); int col = a[0].length();
    for(int i = 0; i < row-2; i++) {
      for(int j = 0; j < col-2; j++) {
	
	if(a[i][j] != b[i][j]) {
	  //transform 
	  for(int x = 0; x < 3; x++) {
	    for(int y = 0; y < 3; y++) {
	      a[i+x][j+y] = (a[i+x][j+y] == '0') ? '1' : '0';
	    }
	  }
	  ans++;
	} //end if

      }
    } //end for
    return (ans == 0) ? -1 : ans;
  }