218. Яндекс Суп

Не решаласьСложная

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

Помогите Пете понять, успеет ли он спасти какие-нибудь буквы - напишите функцию, которая вычислит первую секунду, в которую в кастрюле отсутствуют буквы.

Считается, что:

  • Время начинается с секунды номер 1.

  • Кастрюля — это прямоугольник.

  • За одну секунду буква перемещается в одну из четырех соседних ячеек кастрюли (слева/справа/сверху/снизу);
  • Буква течет к ближайшей (по необходимому количеству секунд) дырке;
  • Буквы никак не взаимодействуют между собой.
  • Буква может течь по краям и углам кастрюли.

Шаблон решения

module.exports = function (mapString: string): number {
    // Ваш код

    return timeInSec; // первая секунда, в которую в кастрюле отсутствуют буквы
}

Формат ввода

Единственная строка mapString с картинкой супа в начальном состоянии:

Кастрюля:

  • представляет собой клетчатую матрицу из $R$ рядов и $C$ колонок ($3 \le R, C \le 10^3$);
  • "ряды" картинки разделены символом перевода строки \n;
  • горизонтальные края заданы символом -;
  • вертикальные края заданы символом |;
  • углы заданы символом +;
  • пустоты заданы символом пробела.

Дырки

  • пусть количество дырок $D$; в таком случае $1 \le D \le min(10, 2 \cdot (R + C - 2))$;
  • дырки расположены только на краях / углах кастрюли (заменяют собой соответствующие символы);
  • каждая дырка подписана уникальной цифрой (0..9);
  • на одной стороне может быть несколько дырок;
  • у всех дырок уникальные координаты.

Буквы

  • пусть количество букв $L$; в таком случае $0 \le L \le (R - 2) \cdot (C - 2)$;
  • все буквы являются заглавными латинскими (A..Z).

Формат вывода

Ваша функция должна вернуть единственное число - первая секунда, в которую в кастрюле отсутствуют буквы.

Описание тестового примера содержит результат в формате json - это особенность задачи, ваша функция должна возвращать именно целое число.

Ограничения

Ограничение времени

3 с

Ограничение памяти

512 МБ

Пример 1

Ввод
+----------------0---------------+
|                                |
|                                |
|          U        D            |
|     L                          |
|              R                 |
|           L                    |
|  U                             1
3        U    D                  |
|         L              R       |
|                                |
+----------------2---------------+
Вывод
{"result":11}

Теги

JavaScript Node.js 12
Нужно войти, чтобы отправить решение.Войти