I - Maximize Array
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : {100} 点
問題文
長さ N の正整数列 A=(A_1,A_2,\ldots,A_N) と、正整数 K が与えられます。 A に以下の操作を好きな回数繰り返して出来る数列のうち、辞書順最大のものを求めてください。
- A の長さ K の連続部分列を削除する。厳密には、現在の A の長さを M として、整数 i\ (1\leq i\leq M-K+1) を選び、A=(A_1,A_2,\ldots,A_M) を (A_1,\ldots,A_{i-1},A_{i+K},\ldots,A_{M}) で置き換える。
制約
- 2\leq N\leq 3\times 10^5
- 1\leq K\leq N-1
- 1\leq A_{i}\leq N
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N K A_1 A_2 \ldots A_N
出力
答えを出力せよ。
入力例 1
9 3 1 2 3 4 1 2 3 4 1
出力例 1
4 4 1
辞書順最大の数列を得ることができる操作手順の一つです。
- (1,2,3,4,\color{red}{1}\color{black},\color{red}{2}\color{black},\color{red}{3}\color{black},4,1) \to (\color{red}{1}\color{black},\color{red}{2}\color{black},\color{red}{3}\color{black},4,4,1)\to(4,4,1)
入力例 2
6 1 1 6 4 2 3 5
出力例 2
6 5
辞書順最大の数列を得ることができる操作手順の一つです。
- (1,6,4,\color{red}2\color{black},3,5)\to(1,6,\color{red}4\color{black},3,5)\to(\color{red}1\color{black},6,3,5)\to(6,\color{red}3\color{black},5)\to(6,5)
入力例 3
6 5 6 5 4 3 2 1
出力例 3
6 5 4 3 2 1
一度も操作しないのが最適です。