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

Задача . Mirror Field


Задача

Темы:
Problem 1: Mirror Field [Mark Gordon]
Фермер Джон оставил несколько старых зеркал во дворе и коровы их украли. Коровы установили эти зеркала на прямоугольном поле из N*M квадратов (1<=N,M<=1000) . В каждом квадрате они разместили двустороннее зеркало между двумя противоположными углами. Такие две возможные конфигурации представлены символами ‘/’ (зеркало, соединяющее левый нижний угол с правым верхним углом) и символом ‘\’ (зеркало, соединяющее левый верхний угол с правым нижним углом).
Однажды Беси пришла с лазером к этому полю. Она пускает луч света горизонтально или вертикально или в строку или в столбец поля, который отражается от некоторого количества зеркал. Поскольку все зеркала ориентированы диагонально, то горизонтальный луч света, отразившись от зеркала, продолжает движение вертикально, и наоборот.
Беси интересно каково максимальное количество зеркал, от которых может отразится её лазерный луч отправленный из одной позиции. Помогите ей вычислить это число.
PROBLEM NAME: mirror
Формат входных данных
* Строка 1: Целые числа N и M, разделённые одним пробелом.
* Строки 2..1+N: Каждая содержит M символов '/' или '\', описывающих одну строку зеркального поля.
Формат выходных данных
* Строка 1: Одно целое число, указывающее максимальное количество раз, которое может отразится луч выпущенный вертикально или горизонтально снаружи поля. Выведите -1, если он может отражаться бесконечно.
Примечание
Беси может запустить лазер сверху вниз в средней колонке и этот луч отразится 3 раза.

Примеры
Входные данныеВыходные данные
1 3 3
/\\
\\\
/\/
3

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

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