12131. Крижаний лабіринт


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Є сітка \(N × M\) і гравець, що стоїть на ній.

Нехай \((i,j)\) позначає квадрат у \(i\)-му рядку зверху та \(j\)-му стовпчику зліва цієї сітки.

Кожен квадрат цієї сітки є льодом або скелею, яка представлена \(N\) рядками \(S_1 ​,S_2 ​,…,S_N\) ​ довжини \(M\) таким чином:

  • якщо \(j\)-й символ \(S_i\) ​ дорівнює '.', квадрат \((i ,j)\) - лід;
  • якщо \(j\)-й символ \(S_i\) ​ дорівнює '#', квадрат \((i,j)\) це камінь.

Зовнішня периферія цієї сітки (всі квадрати в 1-му рядку, \(N\)-му рядку, 1-му стовпчику, \(M\)-му стовпчику) - камінь.

Спочатку гравець стоїть на квадраті (2,2), який є льодом.

Гравець може зробити наступний хід нуль або більше разів.

  • Спочатку вкажіть напрямок руху: вгору, вниз, вліво або вправо.
  • Потім продовжуйте рухатися в цьому напрямку, поки гравець не наткнеться на камінь. Формально продовжуйте робити наступне: якщо наступний квадрат у напрямку руху — лід, перейдіть до цього квадрата та продовжуйте рух;

    якщо наступним квадратом у напрямку руху є камінь, залишайтеся в поточному квадраті та припиніть рух.

Знайдіть кількість льодових квадратів, яких гравець може торкнутися (передати або зупинитися).

Обмеження

  • \(3≤N,M≤200\)
  • \(S_i\) ​ — це рядок довжини \(M\), що складається з '#' і '.'.
  • Квадрат \((i,j)\) є каменем, якщо \(i=1\), \(i=N\), \(j=1\) або \(j=M\).
  • Квадрат (2,2) - лід.

Формат вхідних даних

Перший рядок містить цілі числа \(N,M\).

Наступні  \(N\) рядків містять \(S_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь.

Приклад вхідних даних

6 6
######
#....#
#.#..#
#..#.#
#....#
######

Приклад вихідних даних

12

Наприклад, гравець може зупинитися на (5,5), рухаючись таким чином:

  • (2,2)→(5,2)→(5,5).

Гравець може пройти (2,4), рухаючись наступним чином:

  • (2,2)→(2,5), передаючи (2,4) у процесі.

Гравець не може проходити або зупинятися на (3,4).


Коментарі

Ще немає коментарів.