#CF2041J. 酒瓶摆放

酒瓶摆放

J. 酒瓶摆放
时间限制:每个测试点 5 秒
内存限制:每个测试点 1024 MB


题目描述

Mayaw 在 Fata'an 部落一家著名的 Epah 酒吧工作。为了展示其深厚的藏酒种类,酒吧有一个两层的酒架,每一层正好可以放 nn 个瓶子。
后排已经放置了 nn 个瓶子,从左到右第 ii 个瓶子的高度是 aia_i
店主还有另外 nn 个瓶子,高度分别为 b1,b2,,bnb_1, b_2, \dots, b_n(这些高度互不相同),希望 Mayaw 把它们放到前排。

为了保证后排的所有瓶子都能被看见,店主要求:前排第 ii 个位置放的瓶子的高度 hh 必须小于后排第 ii 个瓶子的高度 aia_i(即 h<aih < a_i)。

不仅如此,为了向附近的 Maxi 山致敬,店主还要求前排瓶子的高度序列(从左到右)必须呈现山形的形状:即先(非严格)递增,然后(非严格)递减。

有时可能无法满足店主的所有要求,因此 Mayaw 被允许取下瓶盖来稍微降低瓶子的高度。取下瓶盖会使瓶子的高度减少恰好 11
当然,打开瓶盖会让 Epah 暴露在空气中,影响品质,所以希望取下的瓶盖数量尽可能少。

目标:计算最少需要取下多少个瓶盖,才能使得存在一种前排瓶子的排列方式,满足店主的两个要求。
(后排瓶子的位置固定,不能改动)


输入格式

第一行包含一个整数 nn,表示每层酒架的瓶子数量。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,表示后排瓶子的高度。
第三行包含 nn互不相同的整数 b1,b2,,bnb_1, b_2, \dots, b_n,表示待摆放的前排瓶子的原始高度。

数据范围:

  • 1n5×1051 \le n \le 5 \times 10^5
  • 1ai,bi1091 \le a_i, b_i \le 10^9
  • 所有 bib_i 互不相同

输出格式

输出一个整数:最少需要取下的瓶盖数量。
如果无论如何(即使无穷多个瓶盖被取下)都无法满足要求,输出 1-1


输入输出样例

样例输入 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