#P16048. [Oni2024国家队选拔赛]Balama

[Oni2024国家队选拔赛]Balama

题目描述

在木材加工考试中,未来的工程师们得到了一扇有 NN 个铰链的门。第 ii 个铰链的强度为 RiR_i

考试的第一项任务是确定这扇门的“总强度”。总强度是一个由 KK 个数组成的序列

T1,T2,,TK,T_1,T_2,\ldots,T_K,

计算方式如下。

首先定义矩阵 AA。矩阵 AANK+1N-K+1 行、KK 列,第 ii 行是序列 RR 中从 RiR_iRi+K1R_{i+K-1} 的连续子序列。也就是说:

$$A_{i,j}=R_{i+j-1}\qquad (1\le i\le N-K+1,\ 1\le j\le K).$$

例如,当

N=9,R=[2,5,4,3,2,1,8,7,3],K=3N=9,\quad R=[2,5,4,3,2,1,8,7,3],\quad K=3

时,矩阵 AA 为:

$$A= \begin{pmatrix} 2&5&4\\ 5&4&3\\ 4&3&2\\ 3&2&1\\ 2&1&8\\ 1&8&7\\ 8&7&3 \end{pmatrix}.$$

接着定义矩阵 BB。矩阵 BB 同样有 NK+1N-K+1 行、KK 列,第 ii 行由矩阵 AAii 行的元素按升序排列得到。

对上面的例子,有:

$$B= \begin{pmatrix} 2&4&5\\ 3&4&5\\ 2&3&4\\ 1&2&3\\ 1&2&8\\ 1&7&8\\ 3&7&8 \end{pmatrix}.$$

最后,定义 TjT_j 为矩阵 BBjj 列的最大值:

Tj=maxiBi,j.T_j=\max_i B_{i,j}.

在上例中,各列最大值分别为 3,7,83,7,8

任务

给定 N,KN,K 以及 R1,R2,,RNR_1,R_2,\ldots,R_N,求出 T1,T2,,TKT_1,T_2,\ldots,T_K

输入格式

第一行包含两个整数 N,KN,K

第二行包含 NN 个整数 R1,R2,,RNR_1,R_2,\ldots,R_N,表示每个铰链的强度。

输出格式

输出 KK 个整数,用空格分隔。第 ii 个整数表示 TiT_i

数据范围与子任务

  • 1N2000001\le N\le 200000
  • 1KN1\le K\le N
  • 0Ri1090\le R_i\le 10^9,对所有 1iN1\le i\le N
子任务 分值 限制
1 5 1N10001\le N\le 1000
2 6 1N100001\le N\le 10000
3 9 0Ri10\le R_i\le 1,对所有 1iN1\le i\le N
4 38 1N750001\le N\le 75000
5 42 无额外限制

子任务 5 含 5 个测试组,分值分别为 7,8,8,9,107,8,8,9,10

样例

输入

9 3
2 5 4 3 2 1 8 7 3

输出

3 7 8

样例解释

矩阵 AA 为:

2 5 4
5 4 3
4 3 2
3 2 1
2 1 8
1 8 7
8 7 3

矩阵 BB 为:

2 4 5
3 4 5
2 3 4
1 2 3
1 2 8
1 7 8
3 7 8

矩阵 BB 三列的最大值分别为 3,7,83,7,8