#3641. 模拟十上升序列 (inc)

模拟十上升序列 (inc)

上升序列 (inc)

题目描述

藤坦坦和藤茵茵在玩一个猜数:有 nn 张卡片排成一排,第 ii 张卡片的正面写着 aia_i,背面写着 bib_i。藤坦坦可以任意翻转这些卡片,让任何一面朝上(但卡片之间的顺序不能换)。

藤坦坦操作完之后,藤茵茵需要按照从前往后的顺序拿取其中一些卡片,但需要保证,每拿取一张卡片,朝上的这一面上的数字要比上一张卡片大。

现在,两人想知道应该如何配合,能让藤茵茵拿到尽可能多的卡片。

输入格式

在文件 inc.in 中读入。 输入的第一行一个整数 nn。 输入的第二行 nn 个整数,第 ii 个整数为 aia_i。 输入的第三行 nn 个整数,第 ii 个整数为 bib_i

输出格式

在文件 inc.out 中输出。 输出一行一个整数,表示藤茵茵最多能拿到的卡片数。

样例

样例输入 #1


10
2 6 6 7 5 3 8 1 10 3
7 7 2 1 2 5 8 1 4 10

样例输出 #1


5

样例 1 解释: 最优策略是,藤坦坦选择正面朝上的数字为:2 6 6 1 2 5 8 1 10 3,然后藤茵茵从前往后依次选择:1, 2, 5, 8, 10。

数据范围

  • 对于20%的数据,保证 1n101 \le n \le 101ai,bi10001 \le a_i,b_i \le 1000
  • 对于50%的数据,保证 1n10001 \le n \le 10001ai,bi10001 \le a_i,b_i \le 1000
  • 对于80%的数据,保证 1n50001 \le n \le 5000
  • 对于100%的数据,保证 1n1061 \le n \le 10^{6}1ai,bi1091 \le a_i,b_i \le 10^{9}