P8645[ARC126D] Pure Straight | ||
|
问题描述
给出一个长度为 \(n\) 的序列,每个数字均为 \([1,k]\) 中的一个整数。每次操作可以将任意两个相邻的数字交换。求最少经过几次交换可以使序列中存在长度为 \(k\) 的连续子序列,子序列中的数单调递增。
输入格式
第一行输入两个数 \(n,k\) 。第二行输入 \(n\) 个数表示最初的序列。
输出格式
输出一个数表示答案。
样例输入 1
4 3
3 1 2 1
样例输出 1
2
样例输入 2
5 5
4 1 5 2 3
样例输出 2
5
样例输入 3
8 4
4 2 3 2 4 2 1 4
样例输出 3
5
提示
样例1解释
先交换前两个数,再交换第二和第三个数,最终序列为 \([1,2,3,1]\) 。
数据范围
\(k \leqslant n \leqslant 200\)
\(2\leqslant k \leqslant 16\)
输入的数均为正整数,保证初始序列中存在所有不超过 \(k\) 的正整数。