fork download
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. vector<vector<char> > map;
  7.  
  8. char W[8][8] = {
  9. { 'W','B','W','B','W','B','W','B' },
  10. {'B','W','B','W','B','W','B','W' },
  11. { 'W','B','W','B','W','B','W','B' },
  12. { 'B','W','B','W','B','W','B','W' },
  13. { 'W','B','W','B','W','B','W','B' },
  14. { 'B','W','B','W','B','W','B','W' },
  15. { 'W','B','W','B','W','B','W','B' },
  16. { 'B','W','B','W','B','W','B','W' } };
  17.  
  18. char B[8][8] = {
  19. { 'B','W','B','W','B','W','B','W' },
  20. { 'W','B','W','B','W','B','W','B' },
  21. { 'B','W','B','W','B','W','B','W' },
  22. { 'W','B','W','B','W','B','W','B' },
  23. { 'B','W','B','W','B','W','B','W' },
  24. { 'W','B','W','B','W','B','W','B' },
  25. { 'B','W','B','W','B','W','B','W' },
  26. { 'W','B','W','B','W','B','W','B' } };
  27.  
  28. void revise(int y, int x);
  29. int n, m;
  30.  
  31. int Min;
  32.  
  33. int main()
  34. {
  35. cin >> n >> m;
  36.  
  37. for (int i = 0; i < n; i++)
  38. {
  39. vector<char>temp(m);
  40. map.push_back(temp);
  41. }
  42.  
  43. for (int i = 0; i < n; i++)
  44. {
  45. for (int j = 0; j < m; j++)
  46. {
  47. cin >> map[i][j];
  48. }
  49. }
  50.  
  51.  
  52.  
  53.  
  54. for (int i = 0; i < n - 8 + 1; i++)
  55. {
  56. for (int j = 0; j < m - 8 + 1; j++)
  57. {
  58. revise(i, j);
  59.  
  60. }
  61. }
  62.  
  63.  
  64. cout << Min << endl;
  65.  
  66. return 0;
  67. }
  68.  
  69. void revise(int y, int x)
  70. {
  71. int cnt = 0;
  72. int cnt2 = 0;
  73.  
  74. int k = 0;
  75. for (int i = y; i < y + 8; i++)
  76. {
  77. int z = 0;
  78. for (int j = x; j < x + 8; j++)
  79. {
  80. if (map[i][j] != W[k][z])
  81. {
  82. cnt++;
  83. }
  84. z++;
  85. }
  86. k++;
  87. }
  88.  
  89. /////////////////
  90.  
  91. k = 0;
  92. for (int i = y; i < y + 8; i++)
  93. {
  94. int z = 0;
  95. for (int j = x; j < x + 8; j++)
  96. {
  97. if (map[i][j] != B[k][z])
  98. {
  99. cnt2++;
  100. }
  101. z++;
  102. }
  103. k++;
  104. }
  105.  
  106.  
  107. Min = min(cnt, cnt2);
  108.  
  109.  
  110. }
Success #stdin #stdout 0s 4380KB
stdin
10 13
BBBBBBBBWBWBW
BBBBBBBBBWBWB
BBBBBBBBWBWBW
BBBBBBBBBWBWB
BBBBBBBBWBWBW
BBBBBBBBBWBWB
BBBBBBBBWBWBW
BBBBBBBBBWBWB
WWWWWWWWWWBWB
WWWWWWWWWWBWB
stdout
17