fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. bool checkRectangles(vector<string>& grid, int n, int m) {
  6. for (int i = 0; i < n - 1; ++i) {
  7. for (int j = 0; j < m - 1; ++j) {
  8. if (grid[i][j] != grid[i + 1][j] && grid[i][j] != grid[i][j + 1]) {
  9. return false;
  10. }
  11. }
  12. }
  13. return true;
  14. }
  15.  
  16. int main() {
  17. int t;
  18. cin >> t;
  19.  
  20. while (t--) {
  21. int n, m;
  22. cin >> n >> m;
  23. vector<string> grid(n);
  24. for (int i = 0; i < n; ++i) {
  25. cin >> grid[i];
  26. }
  27.  
  28. bool possible = checkRectangles(grid, n, m);
  29.  
  30. if (possible) {
  31. cout << "YES" << endl;
  32. } else {
  33. cout << "NO" << endl;
  34. }
  35. }
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0.01s 5300KB
stdin
8
2 1
W
B
6 6
WWWWBW
WBWWWW
BBBWWW
BWWWBB
WWBWBB
BBBWBW
1 1
W
2 2
BB
BB
3 4
BWBW
WBWB
BWBW
4 2
BB
BB
WW
WW
4 4
WWBW
BBWB
WWBB
BBBB
1 5
WBBWB
stdout
YES
NO
YES
YES
NO
YES
NO
YES