fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. bool checkPairs(vector<string>& grid, int n, int m) {
  6. // Check horizontal pairs
  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 vertical pairs
  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. // Check diagonal pairs
  23. for (int i = 0; i < n - 1; ++i) {
  24. for (int j = 0; j < m - 1; ++j) {
  25. if (grid[i][j] != grid[i + 1][j + 1]) {
  26. return false;
  27. }
  28. }
  29. }
  30. return true;
  31. }
  32.  
  33. int main() {
  34. int t;
  35. cin >> t;
  36.  
  37. while (t--) {
  38. int n, m;
  39. cin >> n >> m;
  40. vector<string> grid(n);
  41. for (int i = 0; i < n; ++i) {
  42. cin >> grid[i];
  43. }
  44.  
  45. bool possible = checkPairs(grid, n, m);
  46.  
  47. if (possible) {
  48. cout << "YES" << endl;
  49. } else {
  50. cout << "NO" << endl;
  51. }
  52. }
  53.  
  54. return 0;
  55. }
  56.  
Success #stdin #stdout 0.01s 5288KB
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