fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. bool checkAdjacentPairs(vector<string>& grid, int n, int m) {
  6. // Check horizontally
  7. for (int i = 0; i < n; ++i) {
  8. for (int j = 0; j < m - 1; ++j) {
  9. if (grid[i][j] != grid[i][j + 1]) {
  10. return false;
  11. }
  12. }
  13. }
  14. // Check vertically
  15. for (int j = 0; j < m; ++j) {
  16. for (int i = 0; i < n - 1; ++i) {
  17. if (grid[i][j] != grid[i + 1][j]) {
  18. return false;
  19. }
  20. }
  21. }
  22. return true;
  23. }
  24.  
  25. int main() {
  26. int t;
  27. cin >> t;
  28.  
  29. while (t--) {
  30. int n, m;
  31. cin >> n >> m;
  32. vector<string> grid(n);
  33. for (int i = 0; i < n; ++i) {
  34. cin >> grid[i];
  35. }
  36.  
  37. bool possible = checkAdjacentPairs(grid, n, m);
  38.  
  39. if (possible) {
  40. cout << "YES" << endl;
  41. } else {
  42. cout << "NO" << endl;
  43. }
  44. }
  45.  
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0s 5264KB
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
NO
NO
YES
YES
NO
NO
NO
NO