0 до момента day_end. В нём n непересекающихся встреч, отсортированных по времени: i-я занимает отрезок [starts[i], ends[i]].
Можно перенести **не больше одной** встречи на любое другое время. Перенесённая встреча сохраняет длительность, остаётся внутри рабочего дня и не должна пересекаться с остальными. В отличие от простого сдвига, её разрешено поставить в любое место — хоть до, хоть после других встреч.
Верните наибольшую возможную длину непрерывного свободного промежутка внутри дня.day_end=12, starts=[0, 3, 10], ends=[2, 4, 11] → 8
Встречу [3, 4] переносим в самый конец дня, на [11, 12]. Тогда с 2 до 10 ничего нет — перерыв длиной 8.
day_end=9, starts=[1, 4], ends=[3, 8] → 2
Свободные куски по 1 единице, и ни одна встреча в чужой промежуток не помещается. Остаётся только придвинуть встречу, склеив два соседних промежутка: например, [1, 3] → [0, 2] освобождает [2, 4].
day_end=3, starts=[0, 1], ends=[1, 3] → 0
Встречи занимают весь день, свободного времени нет.
day_end ≤ 10⁹len(starts) = len(ends) ≤ 10⁵starts[i] < ends[i] ≤ day_endends[i] ≤ starts[i + 1]day_end=12, starts=[0, 3, 10], ends=[2, 4, 11]
8
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 113 тестов на сервере, включая скрытые.