#P15574. [jag2024国内赛]数列的分割

[jag2024国内赛]数列的分割

题目描述

给定长度为 nn 的整数列:

A=(a1,a2,,an)A=(a_1,a_2,\ldots,a_n)

AA 划分为若干个非空连续子序列:

B1,B2,,BmB_1,B_2,\ldots,B_m

并按原顺序连接后仍为 AA,称为 AA 的一个分割。

对一个整数序列 BB,定义:

f(B)=(xBx)2f(B)=\left(\sum_{x\in B}x\right)^2

一个分割 (B1,B2,,Bm)(B_1,B_2,\ldots,B_m) 的分数为:

f(B1)+f(B2)++f(Bm)f(B_1)+f(B_2)+\cdots+f(B_m)

AA 一共有 2n12^{n-1} 种分割。将所有分割的分数按降序排列,求第 kk 大的分数。

输入格式

输入包含不超过 3030 个数据集。

每个数据集格式如下:

n k
a1 a2 ... an

其中:

1n10001\le n\le 1000 1kmin(2n1,2000)1\le k\le \min(2^{n-1},2000) 106ai106-10^6\le a_i\le 10^6

输入以 0 0 结束。

输出格式

对每个数据集,输出一行一个整数,表示第 kk 大分数。

样例输入

5 1
3 1 4 1 5
5 6
3 1 4 1 5
14 255
2024 6 29 14 0 -17 0 2024 7 5 16 30 -19 30
0 0

样例输出

196
100
8484005