[NOI Online #1 提高组] 最小环
题目描述
给定一个长度为 $n$ 的正整数序列 $a_i$,下标从 $1$ 开始编号。我们将该序列视为一个首尾相邻的环,更具体地,对于下标为 $i$, $j(i \leqslant j)$ 的两个数 $a_i$, $a_j$,它们的距离为 $\min(j-i, i+n-j)$。
现在再给定 $m$ 个整数 $k_1$, $k_2$,..., $k_m$,对每个 $k_i(i=1$, $2$,..., $m)$,你需要将上面的序列 $a_i$ 重新排列,使得环上任意两个距离为 $k_i$ 的数字的乘积之和最大。
输入输出格式
输入格式
第一行两个正整数 $n$, $m$,表示序列长度与询问数。
接下来一行 $n$ 个正整数表示 $a_i$。
接下来 $m$ 行每行一个非负整数表示 $k_i$。
输出格式
共 $m$ 行,每行一个整数表示答案。
输入输出样例
输入样例 #1
6 4
1 2 3 4 5 6
0
1
2
3
输出样例 #1
91
82
85
88
说明
#### 输入输出样例 1 解释
- $k=0$ 时:答案为每个数平方的和。
- $k=1$ 时:一种最优方案:$\{3,1,2,4,6,5\}$。答案为 $3 \times 1 + 1 \times 2 + 2 \times 4 + 4 \times 6 + 6 \times 5 + 5 \times 3 = 82$。
- $k=2$ 时:一种最优方案:$\{3,6,1,4,2,5\}$。答案为 $3 \times 1 + 1 \times 2 + 2 \times 3 + 6 \times 4 + 4 \times 5 + 5 \times 6 = 85$。
- $k=3$ 时,一个合法的排列是 $1,5,3,2,6,4$ ,答案为 $88$。注意这里答案不是 $44$。
---
#### 数据范围与提示
对于所有测试数据:$1 \leqslant m \leqslant n \leqslant 2 \times 10^5$,$0 \leqslant k \leqslant \lfloor n/2\rfloor$,$1 \leqslant a_i \leqslant 10^5$。
| 测试点编号 | $n \leqslant$ | 特殊性质|
| :--- | :--- | :--- |
| 1 | $10$ | 无 |
| 2 | $18$ | 无 |
| 3 | $36$ | $n$ 为偶数且 $m=1$,$k=2$ |
| 4,5 | $1000$ | $m \leqslant 10$,$k=1$ |
| 6 | $50$ | $m \leqslant 10$,$k \leqslant 2$ |
| 7,8 | $3000$ | 无 |
| 9,10 | $2 \times 10^5$ | 无 |