Оренда книжок

Розв'язок для $$$a_i$$$ = $$$1$$$:

При заданих обмеженнях, ми маємо відрізки $$$[t_i;t_i+l_i-1]$$$ які всі дають однаковий рівень задоволення — $$$1$$$. Можна застосувати жадібний алгоритм, щоб прочитати якомога більше книжок. Відсортуємо відрізки за зростанням правої границі. Будемо йти та брати книжку, якщо ми можемо її взяти. Це очевидно, бо якщо в тебе є декілька книжок, то навіщо тобі брати книжку, прочитання якої ти завершиш пізніше, ніж цієї, і залишиться менше доступних книжок.

Розв'язок на повний бал:

Нехай $$$ans_i$$$ — відповідь, якщо після моменту часу $$$i$$$ ми зупиняємось читати. Будемо йти по зростанню часу, далі будуть такі переходи:

Книжки, які мають $$$t$$$ = $$$i$$$ можна зберігати у векторі $$$books_t$$$, в якому будуть пари {$$$l$$$, $$$a$$$}.

Загальна асимптотика — $$$\mathcal{O}(N + t)$$$, де $$$t$$$ — найпізніший момент часу, коли можна закінчити читати книжку.