k недель, переезжая между n офисами в разных городах (номера от 0 до n - 1). В понедельник первой недели он находится в офисе 0.
Матрица routes размером n × n описывает рейсы: routes[i][j] = 1, если из города i есть прямой рейс в город j, иначе 0 (рейс из города в него же не бывает, обратный рейс не гарантирован). Лететь можно только утром в понедельник и не больше одного раза за этот понедельник — либо остаться на месте. Перелёт занимает ноль времени.
Матрица rest размером n × k: rest[i][w] — сколько дней можно отдыхать в городе i на неделе w. Отдых засчитывается городу, в котором сотрудник проводит неделю (если он прилетел в понедельник, неделя уже считается в новом городе). Остальные дни недели он работает.
Верните наибольшее суммарное число дней отдыха за k недель.routes=[[0, 1, 0], [0, 0, 1], [1, 0, 0]], rest=[[2, 1, 0], [5, 0, 4], [0, 6, 7]] → 18
Неделя 1: летим в офис 1, отдыхаем 5 дней. Неделя 2: летим в офис 2, отдыхаем 6. Неделя 3: остаёмся там, ещё 7. Итого 18.
routes=[[0, 0], [0, 0]], rest=[[3, 2], [7, 7]] → 5
Рейсов нет, поэтому все недели проходят в офисе 0: 3 + 2 = 5.
routes=[[0, 1, 0], [0, 0, 1], [1, 0, 0]], rest=[[2, 1, 0], [5, 0, 4], [0, 6, 7]]
18
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 63 теста на сервере, включая скрытые.