题目描述
给定一个长度为 N 的序列 A=(A1,A2,…,AN)。
已知对所有 1≤i≤N 都有 1≤Ai≤K,并且 1,2,…,K 这 K 个整数在序列中都至少出现一次。
你可以对这个序列进行若干次操作。每次操作中,你可以选择两个相邻的位置并交换这两个位置上的数。
你需要求出,最少经过多少次操作后,序列中会出现一个长度恰为 K 的连续子段,其内容依次为
1,2,…,K.
形式化地说,你需要求出最小操作次数,使得存在一个整数 p,满足 1≤p≤N−K+1,且
Ap=1, Ap+1=2, …, Ap+K−1=K.
输入格式
第一行两个整数 N,K。
第二行 N 个整数 A1,A2,…,AN。
输出格式
输出一行一个整数,表示答案。
4 3
3 1 2 1
2
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
说明提示
样例解释1
一种最优方案如下:
- 交换 A1,A2,序列变为 (1,3,2,1);
- 交换 A2,A3,序列变为 (1,2,3,1)。
此时前 3 个数恰好为 1,2,3,总操作次数为 2。
数据范围
| 测试点编号 |
N≤ |
K≤ |
特殊性质 |
| 1 |
8 |
无 |
| 2 |
16 |
N=K |
| 3 |
40 |
4 |
无 |
| 4 |
50 |
5 |
| 5 |
80 |
6 |
| 6 |
100 |
8 |
| 7 |
120 |
10 |
| 8 |
160 |
12 |
| 9 |
180 |
14 |
| 10 |
200 |
16 |
对于 100% 的数据,2≤K≤16,K≤N≤200,1≤Ai≤K,并且 1,2,…,K 每个数都至少出现一次。