C. 第3题-前缀归位

第3题-前缀归位

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

小L有一排 nn 张卡片,上面分别写着 11 到 nn 的整数,每个整数恰好出现一次。

他希望经过若干次操作后,让最前面的 kk 张卡片上的数字恰好组成集合 {1,2,…,k}\{1,2,\dots,k\}(顺序可以任意)。

每次操作只能交换相邻的两张卡片。

请计算最少需要进行多少次操作。

约束条件

  • nn 和 kk 满足 1≤k≤n≤2000001 \le k \le n \le 200000。
  • 给出的序列包含了 11 到 nn 的每个整数,且每个整数恰好出现一次。

输入描述

第一行包含两个正整数 nn 和 kk (1≤k≤n≤2000001 \le k \le n \le 200000),用空格分隔。 第二行包含 nn 个正整数,表示初始序列,这 nn 个数包含了 11 到 nn 的每个整数,每个整数恰好出现一次,相邻两数之间用空格分隔。

输出描述

输出一个整数,表示最少需要的交换操作次数。

样例1

输入

5 3
4 5 1 2 3

输出

6

说明

初始序列中,前 3 个位置为 4,5,14,5,1,其中大于 kk 的数 4,54,5 位于位置 0 和 1(下标从 0 开始);后 2 个位置为 2,32,3,其中属于 {1,2,3}\{1,2,3\} 的数 2,32,3 位于位置 3 和 4。 需要把 4,54,5 移出前 kk 个位置,把 2,32,3 移入前 kk 个位置。最优配对:4↔24 \leftrightarrow 2,距离 3−0=33-0=3;5↔35 \leftrightarrow 3,距离 4−1=34-1=3。最少相邻交换次数为 3+3=63+3=6。

样例2

输入

4 4
1 3 2 4

输出

0

说明

k=nk=n,目标集合为 {1,2,3,4}\{1,2,3,4\},即整个序列。当前所有卡片已在目标集合中,无需任何操作,因此答案为 0。

样例3

输入

5 1
3 1 4 2 5

输出

1

说明

只需最前面的 1 张卡片变成 11。初始序列第一个位置为 33,11 位于位置 1。 将 3 和 1 进行一次相邻交换,即可得到 1,3,4,2,51,3,4,2,5,满足要求。题解中 pos1=[0]pos1=[0],pos2=[1]pos2=[1],距离为 1−0=11-0=1。

真题模拟赛第五场|JD|2023.04.08研发岗笔试

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2023-4-15 19:00
End at
2023-4-15 20:20
Duration
1.3 hour(s)
Host
Partic.
54