SZTG-U1298. C.sequence

提交1 通过1
通过率100%
文件IO启用
输入文件sequence.in
输出文件sequence.out
时间限制2000ms
内存限制1024MiB
    ID: 13080 传统题 文件IO 输入文件:sequence.in 输出文件:sequence.out 2000ms 1024MiB 尝试: 1 已通过: 1 难度: 暂无评定 上传者:

题目描述

题目描述

给定一个长度为 NN 的序列 A=(A1,A2,…,AN)A=(A_1,A_2,\dots,A_N)。

已知对所有 1≤i≤N1\le i\le N 都有 1≤Ai≤K1\le A_i\le K,并且 1,2,…,K1,2,\dots,K 这 KK 个整数在序列中都至少出现一次。

你可以对这个序列进行若干次操作。每次操作中,你可以选择两个相邻的位置并交换这两个位置上的数。

你需要求出,最少经过多少次操作后,序列中会出现一个长度恰为 KK 的连续子段,其内容依次为

1,2,…,K.1,2,\dots,K.

形式化地说,你需要求出最小操作次数,使得存在一个整数 pp,满足 1≤p≤N−K+11\le p\le N-K+1,且

Ap=1, Ap+1=2, …, Ap+K−1=K.A_p=1,\ A_{p+1}=2,\ \dots,\ A_{p+K-1}=K.

输入格式

第一行两个整数 N,KN,K。

第二行 NN 个整数 A1,A2,…,ANA_1,A_2,\dots,A_N。

输出格式

输出一行一个整数,表示答案。

4 3
3 1 2 1
2
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。
详见下发文件。

说明提示

样例解释1

一种最优方案如下:

  • 交换 A1,A2A_1,A_2,序列变为 (1,3,2,1)(1,3,2,1);
  • 交换 A2,A3A_2,A_3,序列变为 (1,2,3,1)(1,2,3,1)。

此时前 33 个数恰好为 1,2,31,2,3,总操作次数为 22。

数据范围

测试点编号 N≤N\leq K≤K\leq 特殊性质
11 88 无
22 1616 N=KN=K
33 4040 44 无
44 5050 55
55 8080 66
66 100100 88
77 120120 1010
88 160160 1212
99 180180 1414
1010 200200 1616

对于 100%100\% 的数据,2≤K≤162\leq K\leq16,K≤N≤200K\leq N\leq200,1≤Ai≤K1\leq A_i\leq K,并且 1,2,…,K1,2,\ldots,K 每个数都至少出现一次。