#ABC352D. 排列子序列

排列子序列

排列子序列

题目描述

给定 (1,2,,N)(1, 2, \ldots, N) 的一个排列 P=(P1,P2,,PN)P = (P_1, P_2, \dots, P_N)

长度为 KK 的下标序列 (i1,i2,,iK)(i_1, i_2, \dots, i_K) 被称为「好下标序列」,当且仅当它满足以下两个条件:

  • 1i1<i2<<iKN1 \le i_1 \lt i_2 \lt \dots \lt i_K \le N
  • 子序列 (Pi1,Pi2,,PiK)(P_{i_1}, P_{i_2}, \dots, P_{i_K}) 可以通过重新排列某连续 KK 个整数得到。形式化地说,存在整数 aa,使得 $\lbrace P_{i_1}, P_{i_2}, \dots, P_{i_K} \rbrace = \lbrace a, a + 1, \dots, a + K - 1 \rbrace$。

求所有好下标序列中 iKi1i_K - i_1 的最小值。可以证明,在本问题的约束下至少存在一个好下标序列。

输入格式

输入按以下格式从标准输入给出:

NN KK
P1P_1 P2P_2 \dots PNP_N

输出格式

输出所有好下标序列中 iKi1i_K - i_1 的最小值。

样例

4 2
2 3 1 4
1

好下标序列有 (1,2),(1,3),(2,4)(1, 2), (1, 3), (2, 4)。例如,(i1,i2)=(1,3)(i_1, i_2) = (1, 3) 是好下标序列,因为 1i1<i2N1 \le i_1 \lt i_2 \le N,且 (Pi1,Pi2)=(2,1)(P_{i_1}, P_{i_2}) = (2, 1) 是连续两个整数 1,21, 2 的重新排列。

在这些好下标序列中,iKi1i_K - i_1 的最小值出现在 (1,2)(1, 2),其值为 21=12 - 1 = 1

4 1
2 3 1 4
0

在所有好下标序列中都有 iKi1=i1i1=0i_K - i_1 = i_1 - i_1 = 0

10 5
10 1 6 8 7 2 5 9 3 4
5

数据范围

  • 1KN2×1051 \le K \le N \le 2 \times 10^5
  • 1PiN1 \le P_i \le N
  • iji \neq j,则 PiPjP_i \neq P_j
  • 输入中的所有值均为整数
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
3287
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签