Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- using namespace std;
- int n = 10;
- vector<string> matrix;
- bool corner(int i, int j)
- {
- if ((j + 1 < n) && (i + 1 < n) && matrix[i][j] == 'X' && matrix[i][j + 1] == 'X' && matrix[i + 1][j] == 'X')
- return false;
- if ((j - 1 > -1) && (i + 1 < n) && matrix[i][j - 1] == 'X' && matrix[i][j] == 'X' && matrix[i + 1][j] == 'X')
- return false;
- if ((j - 1 > -1) && (i - 1 > -1) && matrix[i][j - 1] == 'X' && matrix[i][j] == 'X' && matrix[i - 1][j] == 'X')
- return false;
- if ((j + 1 < n) && (i - 1 > -1) && matrix[i][j + 1] == 'X' && matrix[i][j] == 'X' && matrix[i - 1][j] == 'X')
- return false;
- return true;
- }
- bool zone(int i, int j)
- {
- if ((i + 1 < n) && (j - 1 > -1) && matrix[i + 1][j - 1] == 'X' && matrix[i][j] == 'X')
- return false;
- if ((i + 1 < n) && (j + 1 < n) && matrix[i + 1][j + 1] == 'X' && matrix[i][j] == 'X')
- return false;
- return true;
- }
- int height(int i, int j)
- {
- int result = 0;
- if(matrix[i][j] == 'X' && (j + 1 >= n || matrix[i][j + 1] == '.'))
- {
- while(i < n && matrix[i][j] == 'X')
- {
- result++;
- matrix[i][j] = '.';
- i++;
- }
- }
- return result;
- }
- int width(int i, int j)
- {
- int result = 0;
- if(matrix[i][j] == 'X' && (i + 1 >= n || matrix[i + 1][j] == '.'))
- {
- while(j < n && matrix[i][j] == 'X')
- {
- result++;
- matrix[i][j] = '.';
- j++;
- }
- }
- return result;
- }
- int main()
- {
- string s;
- for(int i = 0; i < n; i++)
- {
- cin >> s;
- matrix.push_back(s);
- }
- int stage[11] = {0};
- for(int i = 0; i < n; i++)
- for(int j = 0; j < n; j++)
- {
- if (corner(i, j) == 0 || zone(i, j) == 0)
- {
- cout << "NO\n";
- return 0;
- }
- int current = max(height(i, j), width(i, j));
- stage[current]++;
- }
- if(stage[1] == 4 && stage[2] == 3 && stage[3] == 2 && stage[4] == 1 && stage[5] == 0 && stage[6] == 0 && stage[7] == 0 && stage[8] == 0 && stage[9] == 0 && stage[10] == 0)
- cout << "YES\n";
- else
- cout << "NO\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement