| Codeforces Round 1098 (Div. 2) |
|---|
| Закончено |
Это простая версия задачи. Отличие между версиями заключается в том, что в этой версии $$$q=1$$$ и $$$\mathrm{op}=2$$$. Вы можете делать взломы только в том случае, если решили все версии этой задачи.
Для последовательности $$$s$$$ обозначим через $$$|s|$$$ её длину.
Для целочисленной неотрицательной последовательности $$$c$$$ определим $$$f(c)$$$ как сумму квадратов её префиксных сумм: $$$$$$ f(c)=\sum_{i=1}^{|c|}\left(\sum_{j=1}^{i} c_j\right)^2. $$$$$$
Теперь определим $$$g(b,m)$$$ следующим образом.
Пусть $$$b$$$ — целочисленная последовательность, такая что для каждого $$$i$$$ выполнено $$$b_i\ge -1$$$, а $$$m$$$ — целое неотрицательное число. Целочисленная неотрицательная последовательность $$$c$$$ называется допустимой для $$$(b,m)$$$, если выполнены все следующие условия:
Значение $$$g(b,m)$$$ определяется как сумма $$$f(c)$$$ по всем допустимым последовательностям $$$c$$$ для $$$(b,m)$$$. Если такой последовательности не существует, то $$$g(b,m)=0$$$.
Вам дан массив $$$a$$$ длины $$$n$$$, где $$$a_i\ge -1$$$, и $$$q$$$ запросов одного типа:
$$$^{\text{∗}}$$$Массив $$$a$$$ является подмассивом массива $$$b$$$, если $$$a$$$ может быть получен из $$$b$$$ удалением нескольких (возможно, ни одного или всех) элементов с начала и нескольких (возможно, ни одного или всех) элементов с конца.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Для каждого набора входных данных первая строка содержит два целых числа $$$n$$$ и $$$q$$$ ($$$1\leq n\leq 3\cdot 10^5$$$, $$$q=1$$$).
Во второй строке содержится $$$n$$$ целых чисел $$$a_1,a_2,\ldots,a_n$$$ ($$$-1\leq a_i\leq 10^6$$$).
Затем следуют $$$q$$$ строк. Каждая строка описывает запрос в следующем формате. Первое целое число $$$\textrm{op}$$$ равно $$$2$$$.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$3\cdot 10^5$$$.
Для каждого набора входных данных для каждого запроса второго типа выведите на отдельной строке значение $$$g([a_l,a_{l+1},\ldots,a_r],m)$$$ по модулю $$$998\,244\,353$$$.
105 14 -1 7 6 -12 2 2 25 14 -1 8 6 -12 3 3 05 14 -1 8 6 -12 4 5 85 14 -1 8 6 72 3 5 215 14 -1 8 6 72 3 5 224 1-1 -1 -1 -12 1 1 44 1-1 -1 -1 -12 1 2 54 1-1 -1 -1 -12 1 3 64 1-1 -1 -1 -12 1 4 74 1-1 -1 3 -12 1 4 5
40100701016205173612180286
В первом наборе входных данных:
$$$l=r=2$$$ и $$$m=2$$$. Подмассив равен $$$[a_2]=[-1]$$$, поэтому единственная допустимая последовательность — $$$c=[2]$$$. Следовательно, ответ равен $$$2^2=4$$$.
В третьем наборе входных данных:
$$$l=4$$$, $$$r=5$$$, и $$$m=8$$$. Подмассив равен $$$[a_4,a_5]=[6,-1]$$$. Поскольку $$$c_1$$$ фиксирован и равен $$$6$$$, а $$$c_1+c_2=m$$$, получаем $$$c=[6,2]$$$. Префиксные суммы равны $$$6$$$ и $$$8$$$, поэтому $$$$$$ f(c)=6^2+(6+2)^2=36+64=100. $$$$$$
В седьмом наборе входных данных:
Подмассив равен $$$[a_1,a_2]=[-1,-1]$$$. Все допустимые последовательности удовлетворяют $$$c_1+c_2=5$$$ при $$$c_1,c_2\ge 0$$$, а именно $$$[0,5],[1,4],\ldots,[5,0]$$$. Сумма $$$f(c)$$$ по всем таким последовательностям равна $$$205$$$.
| Название |
|---|


