crates, где crates[i] = [порт, вес]; порты пронумерованы от 1 до ports. За один рейс паром может взять не больше max_crates ящиков общим весом не больше max_load.
Рейс устроен так:
- паром забирает несколько **следующих по очереди** ящиков (менять порядок нельзя);
- развозит их строго в порядке погрузки: если следующий ящик едет в другой порт, паром плывёт туда — это один переход; если в тот же, где он уже стоит, — ящик выгружается без перехода;
- возвращается на склад — ещё один переход.
После доставки всех ящиков паром должен стоять на складе. Верните наименьшее общее число переходов.crates=[[2, 3], [2, 1], [1, 2], [2, 2]], ports=2, max_crates=4, max_load=5 → 5
Первый рейс: ящики 0 и 1 (вес 4) — в порт 2 и назад, 2 перехода. Второй: ящики 2 и 3 (вес 4) — в порт 1, затем в порт 2 и назад, 3 перехода. Всего 5. Взять три первых ящика нельзя: вес 6 больше 5.
crates=[[1, 1], [1, 1], [1, 1]], ports=3, max_crates=2, max_load=10 → 4
Все ящики в порт 1, но за раз помещается только два: два рейса по 2 перехода, итого 4.
crates=[[2, 3], [2, 1], [1, 2], [2, 2]], ports=2, max_crates=4, max_load=5
5
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 77 тестов на сервере, включая скрытые.