11798. Відстань між токенами


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

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

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

Існує сітка з \(H\) горизонтальними рядками та \(W\) вертикальними стовпцями, у якій два різні квадрати мають фігуру. Стан квадратів представлено \(H\) рядками \(S_1, \dots, S_H\) довжиною \(W\). \(S_{i, j}\) = 'o' означає, що є фігура в квадраті в \(i\)-му рядку зверху та \(j\)-му стовпчику зліва; \(S_{i, j} =\) '-' означає, що квадрат не має фігури. Тут \(S_{i, j}\) позначає \(j\)-й символ рядка \(S_i\).

Спробуйте кілька разів перемістити одну з фігур на один із чотирьох сусідніх квадратів. Не дозволяється переміщати фігуру за межі сітки. Скільки мінімум ходів потрібно, щоб фігура досягла квадрата з іншою фігурою?

Обмеження

  • \(2 \leq H, W \leq 100\)
  • \(H\) і \(W\) — цілі числа.
  • \(S_i\), \((1 \leq i \leq H)\) — рядок довжини \(W\), що складається з 'o' та '-'.
  • Існують рівно дві пари цілих чисел \(1 \leq i \leq H\), \(1 \leq j \leq W\) таких, що \(S_{i, j} =\) 'о'.

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

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

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

Числа розділяються пропуском.

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

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

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

2 3
--o
o--

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

3

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

5 4
-o--
----
----
----
-o--

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

4

Коментарі

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