Masala G
Артур и вопросы
После скобочных последовательностей Артур увлекся теорией чисел. И у него появилась новая любимая последовательность длины \(n (a_1, a_2, ..., a_n)\), состоящая из целых чисел, и целое число \(k\), не превышающее \(n\).
Эта последовательность обладала следующим свойством. Если выписать суммы всех ее подотрезков, состоящих из \(k\) подряд идущих элементов \((a_1 + a_2 ... + a_k, a_2 + a_3 + ... + a_{k + 1}, ..., a_{n - k + 1} + a_{n - k + 2} + ... + a_n)\), то элементы выписанной последовательности будут строго возрастать.
Например, для следующего примера: \(n = 5, k = 3, a = (1, 2, 4, 5, 6)\) последовательность сумм будет иметь вид: \((1 + 2 + 4, 2 + 4 + 5, 4 + 5 + 6) = (7, 11, 15)\), а значит последовательность a удовлетворяет описанному свойству.
Очевидно, в последовательности сумм будет \(n - k + 1\) элемент.
Кто-то (не будем говорить кто) заменил в последовательности Артура некоторые числа на знаки вопроса (если число заменяется, то ровно на один знак вопроса). Нужно восстановить последовательность, чтобы она удовлетворяла нужному свойству, и при этом минимизировать сумму \(|a_i|\), где \(|a_i|\) — абсолютная величина \(a_i\).
В первой строке следуют два целых числа \(n\) и \(k (1 ≤ k ≤ n ≤ 10^5)\), обозначающих соответственно количество чисел в последовательности Артура и длины подотрезков.
В следующей строке следуют через пробел \(n\) элементов \(a_i (1 ≤ i ≤ n)\).
Если \(a_i = ?\), значит \(i-й\) элемент последовательности Артура был заменен на знак вопроса.
В противном случае, \(a_i ( - 10^9 ≤ a_i ≤ 10^9) — i-й\) элемент последовательности Артура.
Если Артур что-то напутал, и последовательности, соответствующей данной информации нет, выведите единственную строку «Incorrect sequence» (без кавычек).
В противном случае, выведите в первую строку выходных данных \(n\) целых чисел — любимую последовательность Артура. Если таких последовательностей несколько, выведите последовательность с минимальной суммой \(|a_i|\), где \(|a_i|\) — абсолютная величина \(a_i\). Если и таких последовательностей несколько, разрешается вывести любую из них. Элементы последовательности следует выводить без лидирующих нулей.
# | input.txt | output.txt |
---|---|---|
1 |
3 2 ? 1 2 |
0 1 2 |
2 |
5 1 -10 -9 ? -7 -6 |
-10 -9 -8 -7 -6 |
3 |
5 3 4 6 7 2 9 |
Incorrect sequence |