В цій задачі використовується доволі відома техніка, раджу її запам'ятати. Вона базується на тому, що в нас треба вибрати рівно $$$k$$$ елементів, і рахунок вибраних елементів не залежить один від одного.
Давайте спочатку зробимо так, наче ми не обрали жодної книжки, тобто задоволення буде дорівнювати $$$$$$\displaystyle \sum_{i=1}^n (a_i - b_i)$$$$$$
Як зміниться наше задоволення, після прочитання книжки з номером $$$i$$$? Від загального задоволення треба відняти задоволення від непрочитання книжки, і додати задоволення за її прочитання, тобто воно зміниться на $$$$$$(b_i - a_i) - (a_i - b_i) = 2 \cdot (b_i - a_i) $$$$$$
Запишемо всі значення $$$2 \cdot (b_i - a_i)$$$ в вектор $$$v$$$, і після відсортуємо за незростанням. Відповідь буде дорівнювати $$$$$$\displaystyle \sum_{i=1}^n (a_i - b_i) + \sum_{i=1}^k v_i$$$$$$.
Щоб відновити номера книжок, які слід прочитати для досягнення максимального задоволення можна замість записування значення в вектор записувати пару значень {$$$2 \cdot (b_i - a_i)$$$; $$$i$$$}, і оптимальна множина книжок — це індекси перших $$$k$$$ значень в відсортованому за незростанням векторі $$$v$$$.