#P1034. 调整序列

调整序列

题目描述

给定长度为 nn 的序列 a1∼na_{1\sim n},定义其和谐度为 ∑i=1n∑j=i+1nai⋅aj\sum_{i=1}^n\sum_{j=i+1}^na_i\cdot a_j。

你可以进行至多 kk 次操作,每次选定一个 1≤i≤n1\leq i\leq n,令 ai←ai+1a_i\gets a_i+1。

最大化最终序列的和谐度。由于答案可能很大,输出其对 109+710^9+7 取模后的值。

输入格式

第一行两个整数 n,kn,k。

第二行 nn 个整数 a1∼na_{1\sim n}。

输出格式

一行一个整数表示答案。

2 2
4 1
12

样例解释 1

样例解释:两次操作都用在第二个元素上,和谐度为 4*3=12。

3 3
7 1 3
61

样例解释 2

样例解释:三次操作都用在第二个元素上,和谐度为 74+73+4*3=61。

数据范围

对于 30%30\% 的数据,n≤3000n\leq 3000,k=1k=1。

对于 60%60\% 的数据,n≤5×105n\leq 5\times 10^5,k≤100k\leq 100。

对于 100%100\% 的数据,2≤n≤5×1052\leq n\leq 5\times 10^5,0≤k≤1090\leq k\leq 10^9,0≤ai≤1090\leq a_i\leq 10^9。