Гра#501

Гра (Розбір)

Автор: Костянтин Денисов

Роздробник: Павло Цікалишин

Розбір підготовано: Костянтин Денисов

Очевидно, що на відрізку [l,r] треба ставити якнайбільші числа, тобто a_i=m для всіх l \le i \le r. Тоді цей відрізок має найбільший потенціал, і далі наша задача — зробити так, щоб жоден інший підвідрізок не міг з ним зрівнятися за сумою, та ще й серед усіх таких масивів максимізувати суму невід'ємних елементів.

Окремий випадок l=r. Тут максимальна сума має бути рівно і досягатися лише на позиції . Тому поза не можна ставити , інакше одиночний підвідрізок з цієї позиції теж матиме суму . Отже поза найкраще ставити m-1. Але треба ще зіпсувати всі підвідрізки, які включають і ще щось: для цього достатньо розставити на кожній другій позиції, починаючи від сусідів l-1 та l+1. Тоді будь-яке розширення відрізка за межі [l,l] неминуче підхопить хоча б один , і сума стане строго меншою за .

Випадок l<r.

Поза відрізком [l, r] оптимальна конфігурація має максимально багато , але такі доводиться ставити через один, чергуючи з ; інакше з'являється занадто великий підвідрізок поза [l,r] або підвідрізок, що "приклеюється" до [l,r].

Тому для префікса довжини s=l-1 оптимально ставити (зліва направо):

  • якщо парна, то m,\,-m,\,m,\,-m,\,\dots,\,m,\,-m,\,m-1,\,-m; доводиться ставити одну m-1, щоб сума елементів була від'ємна, бо інакше буде декілька елементів з однаковою максимальною сумою.

  • якщо непарна, то m,\,-m,\,m,\,-m,\,\dots,\,m,\,-m,\,-m.

Для суфікса довжини t=n-r робимо аналогічну (дзеркальну) побудову за парністю .

У будь-якому допустимому масиві поза [l,r] не можна ставити багато великих додатних підряд: кожен додатний змушений мати поруч достатню "компенсацію" , інакше з'являється підвідрізок з занадто великою сумою, який конкурує з [l,r]. Отже можна ставити не частіше, ніж через один, тобто шаблон m,-m,m,-m,\dots дає максимальну кількість . У парному випадку рівно один раз доводиться замінити на m-1, щоб уникнути рівності максимумів.

Складність. Побудова займає часу і додаткової пам'яті (окрім виводу).