eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Три государства

Три государства

Три государства расположены на прямоугольной карте размером n * m. Из любой клетки любого государства можно добраться до любой клетки этого же государства, перемещаясь только по его клеткам по горизонтали или вертикали. Клетки каждого государства обозначены одной из цифр (1, 2 или 3).

На карте присутствуют проходимые (".") и непроходимые ("#") клетки.

Постройте дороги на наименьшем количестве проходимых клеток так, чтобы можно было пройти из любой клетки одного государства до любой клетки другого государства. По клеткам любого государства можно беспрепятственно передвигаться. Передвигаться по карте можно только по горизонтали или вертикали.

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

Первая строка содержит размер карты n и m (1n, m1000). Следующие n строк содержат по m символов:

  • 1, 2, 3 - клетки принадлежащие государствам;
  • "." - проходимая клетка, на ней можно строить дорогу;
  • "#" - непроходимая клетка, на ней нельзя строить дорогу;

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

Выведите наименьшее количество клеток, в которых следует построить дороги так, чтобы были соединены все клетки всех государств. Если этого сделать невозможно, то выведите -1.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
6 6
11..#.
1111..
11...#
....22
33....
3333##
Выходные данные #1
3