Новые технологии

Будем заполнять исходный массив последовательно, поддерживая последнее известное значение суммы. Если pi =  - 1, то положим ai = m, потому что меньшее значение записать нельзя, а большее возможно помешает в дальнейшем.

При этом, если pi ≠  - 1, то положим ai = pi - pref_sum, где pref_sum — сумма уже заполненных элементов a. Если в таком случае, ai оказалось меньше m, то решения не существует, так как pref_sum минимально возможный по построению.

Итоговая сложность представленного решения O(n).