Розв'язок для $$$n \le 2000$$$:
Переберемо ліву границю за $$$\mathcal{O}(n)$$$ і для кожної лівої будемо перебирати праву границю за зростанням і підтримувати суму на відрізку. Загалом $$$\mathcal{O}(n^2)$$$.
Розв'язок для $$$a_i \le a_{i+1}$$$:
Будемо йти з кінця масиву в початок та набирати елементи, доки вони збільшують суму, тобто, доки елемент додатній. Загалом $$$\mathcal{O}(n)$$$.
Розв'язок на повний бал:
Розпишемо формулу з умови для підвідрізка: $$$$$$ \sum_{i=1}^{|S|} a_{S_i} - |S| + 1 = a_{S_1} + a_{S_2} + \dots + a_{S_{|S|}} - |S| + 1 = a_l + a_{l+1} + \dots + a_{r-1} + a_r - (r - l + 1) + 1 =$$$$$$ $$$$$$(a_l - 1) + (a_{l+1} - 1) + \dots + (a_{r-1} - 1) + (a_r - 1) + 1$$$$$$
Задача звелася до пошуку відрізка з максимальною сумою. Сума на відрізку $$$[l;r]$$$ може бути представлена як $$$sum_{[l,r]}$$$ = $$$pref_r$$$ - $$$pref_{l-1}$$$, де $$$pref_i$$$ — сума перших $$$i$$$ елементів масиву, і $$$pref_0$$$ = $$$0$$$. Будемо перебирати праву границю, тобто, $$$pref_r$$$ в нас є фіксованим. Тобто, щоб максимізувати значення $$$pref_r$$$ - $$$pref_{l-1}$$$, треба знайти мінімальне значення $$$pref_{l-1}$$$. Підтримувавши значення мінімального $$$pref_i$$$ на префіксі, можемо знайти відрізок максимальної суми, який має праву границю в $$$r$$$. Відповідь на задачу — максимум серед всіх цих значень.
Загальна асимптотика — $$$\mathcal{O}(n)$$$.
Автор усіх задач: Андрій Столітній.