#CF2041J. 酒瓶摆放
酒瓶摆放
J. 酒瓶摆放
时间限制:每个测试点 5 秒
内存限制:每个测试点 1024 MB
题目描述
Mayaw 在 Fata'an 部落一家著名的 Epah 酒吧工作。为了展示其深厚的藏酒种类,酒吧有一个两层的酒架,每一层正好可以放 个瓶子。
后排已经放置了 个瓶子,从左到右第 个瓶子的高度是 。
店主还有另外 个瓶子,高度分别为 (这些高度互不相同),希望 Mayaw 把它们放到前排。
为了保证后排的所有瓶子都能被看见,店主要求:前排第 个位置放的瓶子的高度 必须小于后排第 个瓶子的高度 (即 )。
不仅如此,为了向附近的 Maxi 山致敬,店主还要求前排瓶子的高度序列(从左到右)必须呈现山形的形状:即先(非严格)递增,然后(非严格)递减。
有时可能无法满足店主的所有要求,因此 Mayaw 被允许取下瓶盖来稍微降低瓶子的高度。取下瓶盖会使瓶子的高度减少恰好 。
当然,打开瓶盖会让 Epah 暴露在空气中,影响品质,所以希望取下的瓶盖数量尽可能少。
目标:计算最少需要取下多少个瓶盖,才能使得存在一种前排瓶子的排列方式,满足店主的两个要求。
(后排瓶子的位置固定,不能改动)
输入格式
第一行包含一个整数 ,表示每层酒架的瓶子数量。
第二行包含 个整数 ,表示后排瓶子的高度。
第三行包含 个互不相同的整数 ,表示待摆放的前排瓶子的原始高度。
数据范围:
- 所有 互不相同
输出格式
输出一个整数:最少需要取下的瓶盖数量。
如果无论如何(即使无穷多个瓶盖被取下)都无法满足要求,输出 。
输入输出样例
样例输入 1
5
2 4 6 5 4
1 2 3 4 5
样例输出 1
0
样例输入 2
5
2 3 6 5 4
1 2 3 4 5
样例输出 2
0
样例输入 3
5
6 2 6 6 6
1 2 3 4 5
样例输出 3
1
样例输入 4
5
7 2 7 7 7
1 3 4 5 6
样例输出 4
-1
样例输入 5
10
18 20 16 18 16 10 13 6 4 10
19 10 9 15 4 16 6 12 3 17
样例输出 5
4