换位
题号:NC207731
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给出两个数列,求使第一个数列严格降序,第二个数列严格升序的最少交换次数

若无法交换成严格有序,返回“-1”

示例1

输入

复制
[5,4,3,2,1],[1,2,3,4,5]

返回值

复制
0

说明

显然,这个排列已经满足要求,不需要交换。
示例2

输入

复制
[1,2,3,4,5],[5,4,3,2,1]

返回值

复制
4
示例3

输入

复制
[3,2,1],[1,3,3]

返回值

复制
-1

说明

别忘了如果怎么交换都不能满足要求,你应该返回 -1。

备注:

注意,本题中为严格大于小于关系,即 [1,2,3] 可以看作由升序,但是 [1,3,3] 不行。

数据范围:
- 对于 20% 的数据,
- 对于 60% 的数据,
- 对于 100% 的数据,

对于 100% 的数据,两个数组的大小均恰好为 ,且两个数组  的元素均满足