m строк и n столбцов кварталов; строки нумеруются сверху с нуля, столбцы — слева с нуля. Курьер стоит в квартале start = [строка, столбец], а его дом — в квартале home.
За один шаг курьер переходит в соседний квартал вверх, вниз, влево или вправо, не выходя за пределы сетки. Каждый шаг платный:
- шаг вверх или вниз в квартал строки r стоит row_tolls[r];
- шаг влево или вправо в квартал столбца c стоит col_tolls[c].
Здесь m = len(row_tolls), n = len(col_tolls). Верните минимальную стоимость пути курьера домой.start=[0, 2], home=[2, 0], row_tolls=[9, 1, 4], col_tolls=[3, 6, 2] → 14
Два шага вниз: вход в строки 1 и 2 стоит 1 + 4. Два шага влево: вход в столбцы 1 и 0 стоит 6 + 3. Итого 14 — и любой другой порядок шагов даёт ту же сумму.
start=[1, 1], home=[1, 1], row_tolls=[5, 5], col_tolls=[5, 5] → 0
Курьер уже дома, платить не за что.
start=[3, 0], home=[0, 1], row_tolls=[2, 0, 7, 1], col_tolls=[8, 5] → 14
start=[0, 2], home=[2, 0], row_tolls=[9, 1, 4], col_tolls=[3, 6, 2]
14
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 77 тестов на сервере, включая скрытые.