Олимпиадный тренинг

Задача . B. Плюс из рисунка


Вам дан рисунок с размерами \(w \times h\). Определите, имеет ли данный рисунок одну «+» форму или нет. «+» форма определена ниже:

  • «+» форма имеет одну центральную заполненную клетку.
  • Должно быть несколько (как минимум одна) последовательных заполненных клеток в каждом направлении (влево, вправо, вверх, вниз) от центра, то есть каждый из четырёх лучей должен быть непустым.
  • Все остальные клетки незаполненны.

Определите, имеет ли данный рисунок одну «+» форму или нет.

Входные данные

Первая строка содержит два целых числа \(h\) и \(w\) (\(1 \le h\), \(w \le 500\)) — высота и длина рисунка.

\(i\)-я из следующих \(h\) строк содержит строку \(s_{i}\) длины \(w\), которая состоит из «.» и «*», где «.» обозначает незаполненную клетку, а «*» обозначает заполненную клетку.

Выходные данные

Если данное изображение удовлетворяет всем условиям, выведите «YES». Иначе выведите «NO».

Вы можете выводить каждую букву в любом регистре (строчную или заглавную).

Примечание

В первом примере данная картина содержит одну «+» форму.

Во втором примере две вертикальные ветви расположены в разных столбцах.

В третьем примере есть заполненная точка вне фигуры.

В четвертом примере ширина двух вертикальных ветвей составляет \(2\).

В пятом примере есть две фигуры.

В шестом примере внутри фигуры есть пустое пространство.


Примеры
Входные данныеВыходные данные
1 5 6
......
..*...
.****.
..*...
..*...
YES
2 3 5
..*..
****.
.*...
NO
3 7 7
.......
...*...
..****.
...*...
...*...
.......
.*.....
NO
4 5 6
..**..
..**..
******
..**..
..**..
NO
5 3 7
.*...*.
***.***
.*...*.
NO
6 5 10
..........
..*.......
.*.******.
..*.......
..........
NO

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя