时间限制: C/C++ 1秒,其他语言2秒

空间限制: C/C++ 32768K,其他语言 65536K

题目描述:

将一个链表通过交换节点位置的操作使链表中的 value 为 k 的节点都聚集到一起,给出最少需要的交换次数

输入描述:

输入第一行为链表的长度,取值范围1~1000

输入第二行为链表的节点,如1 23代表链表1->2->3,每个节点value为整数,取值范围0~10000

输入第三行为k

输出描述:

输出需要的最少交换次数

示例

输入:

5
1 2 1 2 1
2

输出:

1

说明:

1->2->1->2->1 只需要交换1次即可变成 2->2->1->1->1或1->2->2->1->1或1->1->2->2->1或1->1->1->2->2