C. 序列询问

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

给定序列 \{a_n\} ,满足每一项都不小于前一项。对于所有不超过 k 的正整数 m ,询问如果将 a 分成 m 段(可以有空段),并给从前往后第 i 段内的每个数都加上 i ,增加后的 \sum\limits_{j=1}^n a_j^2 最大是多少。询问相互独立,即每次询问时给每个数加的值不保留到下一次询问。

例如,对于序列 \{-3,1,2,2\} ,若 m=5 ,则一种分段方式是 [-3][][1,2][][2] ,增加后的序列是 -2,4,5,7 ,此时 \sum\limits_{j=1}^n a_j^2=94

m=i 时的答案(即此时最大的 \sum\limits_{j=1}^n a_j^2 )为 q_i ,出于良心考虑,你只需要输出 \left(\sum\limits_{i=1}^k q_i\right) \bmod 998244353 即可。标准程序不基于特殊的输出方式,即能独立求出每一个 q_i

输入格式

输入格式

第一行两个正整数 n,k ,同题意。

接下来一行 n 个整数,表示 \{a_n\}

输出格式

输出格式

一行一个整数,表示 \left(\sum\limits_{i=1}^k q_i\right) \bmod 998244353

样例

样例 #1

样例输入 #1

4 3
-3 1 2 2

样例输出 #1

141

数据范围与提示

测试点编号 分数 n\leq k\leq \lvert a_i\rvert \leq 特殊性质
1\sim 3 15 12 1000
4\sim 6 1000
7\sim 8 10 10^6 10^6 10^7 a_i\geq0
9 \sim 12 20 1000
13\sim 20 40 10^7

【样例解释】

m=1 时,最优策略是 [-3,1,2,2] q_1=(-2)^2+2^2+3^2+3^2=26

m=2 时,最优策略是 [-3][1,2,2] q_2=(-2)^2+3^2+4^2+4^2=45

m=3 时,最优策略是 [-3][][1,2,2] q_3=(-2)^2+4^2+5^2+5^2=70

\left(\sum\limits_{i=1}^k q_i\right) \bmod 998244353=(q_1+q_2+q_3)\bmod 998244353=(26+45+70)\bmod 998244353=141