3189. 求和

单点时限: 3.0 sec

内存限制: 256 MB

有一个数组,由 n(1n1000) 个值小于等于 100 的正整数元素组成。用该数组的每个非空子数组(显然共有 n(n+1)/2 个子数组)的元素之和建立一个新的数组。对新数组按递增次序排序。

例如:数组 [2, 3, 2] 的子数组有 6 个:[2], [3], [2], [2, 3], [3, 2], [2, 3, 2]。排序后新数组为[2, 2, 3, 5, 5, 7]。

注意:子数组指连续的元素组成的数组。

现在给定 L,U 表示新数组的下标(这里假设数组的下标从 1 开始计),1LUn(n+1)/2,计算出下标 LU 的元素的和。

L,U 共有 m1m20 组。

例如: 前面例子中 L=1,U=2 时的和为 4L=2,U=4 时的和为 10

输入格式

1 行:整数 T (1T10) 为问题数。

2m+3 行:第一个问题的数据。一行由一个空格分隔的两个整数,表示 nm。下一行是原数组的 n 个由一个空格分隔的元素。后面是 mLULU 之间有一个空格。

m+3T×(m+2)+1 行:后面问题的数据,格式与第一个问题相同。

输出格式

对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0: 等),然后是 m 行,在每一行中输出按要求计算出的和。

样例

Input
3
1 1
1
1 1
3 2
2 3 2
1 2
2 4
5 5
5 4 3 2 1
1 1
1 10
1 15
3 8
4 11
Output
case #0:
1
case #1:
4
10
case #2:
1
45
105
26
48

509 人解决,596 人已尝试。

730 份提交通过,共有 2349 份提交。

1.8 EMB 奖励。

创建: 7 年,11 月前.

修改: 2 年,1 月前.

最后提交: 2 天,6 小时前.

来源: N/A

题目标签