crates[i] = [left, side] значит, что i-й ящик со стороной side падает так, что его левый край находится на координате left, то есть он занимает отрезок от left до left + side по горизонтали.
Ящик падает вертикально вниз, пока не ляжет на пол или на верх другого ящика, и дальше не двигается. Если ящики только соприкасаются боковыми гранями, один на другой не ложится.
После каждого падения запишите высоту самой высокой стопки на складе. Верните список этих высот.crates=[[2, 3], [4, 2], [9, 1]] → [3, 5, 5]
Первый ящик занимает отрезок [2, 5], высота 3. Второй ([4, 6]) задевает его сверху и ложится на высоту 3, его верх — 5. Третий падает на пол отдельно, максимум остаётся 5.
crates=[[1, 4], [5, 4], [3, 2]] → [4, 4, 6]
Второй ящик лишь касается боком первого (отрезки [1, 5] и [5, 9]) и падает на пол. Третий ([3, 5]) ложится на первый: 4 + 2 = 6.
crates) ≤ 1000left ≤ 10⁸side ≤ 10⁶crates=[[2, 3], [4, 2], [9, 1]]
[3, 5, 5]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 106 тестов на сервере, включая скрытые.