Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <vector>
- using namespace std;
- pair<int,int> find_center(vector <string> S, int m)
- {
- pair<int, int> temp;
- temp.first = 0;
- temp.second = 0;
- for (int i = 1; i < S.size()-1; i++)
- {
- for (int j = 1; j < m - 1; j++)
- {
- if (S[i - 1][j] == '*' && S[i + 1][j] == '*' && S[i][j + 1]=='*' && S[i][j - 1] == '*')
- {
- temp.first = i;
- temp.second = j;
- return temp;
- }
- }
- }
- return temp;
- }
- int main()
- {
- int h, w;
- cin >> h>> w;
- vector <string> s;
- s.resize(h);
- int count_pluses = 0;
- for (int i = 0; i < h; i++)
- {
- cin >> s[i];
- for (int j = 0; j < w; j++)
- {
- if (s[i][j] == '*')
- {
- count_pluses++;
- }
- }
- }
- pair<int, int> coord = find_center(s, w);
- int count_temp = 0;
- if (coord.first == 0 && coord.second == 0)
- {
- cout << "NO";
- return 0;
- }
- int l, d;
- for (int k = 1; k <= 4; k++)
- {
- l = coord.first;
- d = coord.second;
- while (l < s.size() && l>=0 && d < w&&d>=0&& s[l][d] == '*')
- {
- count_temp++;
- switch (k)
- {
- case 1:
- {
- l++;
- break;
- }
- case 2:
- {
- l--;
- break;
- }
- case 3:
- {
- d++;
- break;
- }
- case 4:
- d--;
- break;
- default:
- break;
- }
- }
- }
- if (count_temp -3 == count_pluses)
- cout << "YES" << endl;
- else cout << "NO" << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement