11798. Відстань між токенами
Існує сітка з \(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
Коментарі