#853. 上升!子序列的最长游戏

上升!子序列的最长游戏

当前没有测试数据。

Background

小路经历千辛万苦买完瓜后, 走在回家的路上, 他突然发现路旁有几个小盆友在摆弄着两排数字, 出于好奇, 他走上前看, 没想到, 却被小盆友要求帮助他们解决下面的问题. 如果他们没有在两秒内解答, 就会把小路的西瓜分掉一半.

出于无奈, 小路只好又找到了聪明的你, 请你帮他解决这个问题.

Description

对于一个序列P=(P1,,PN)P = (P_1, \ldots, P_N), 记 LIS(P)\mathrm{LIS}(P) 为该序列的最长上升子序列。

现在有两个由整数 (1N)(1\sim N) 组成的排列

  • A=(A1,,AN)A=(A_1,\ldots,A_N) ,
  • B=(B1,BN)B=(B_1\ldots,B_N)

你可以对它们执行以下操作,次数不限

  • 选择一个整数 ii,使得 1iN11≤i≤N-1。交换 AiA_iAi+1A_{i+1},并同时交换 BiB_iBi+1B_{i+1}

现在你的任务是

  • 求最终 LIS(A)+LIS(B)\mathrm{LIS}(A)+\mathrm{LIS}(B) 可能的最大值

Format

Input

N 
A1 … AN 
B1 … BN

Output

输出一行, 包含一个整数, 即最终 LIS(A)+LIS(B)\mathrm{LIS}(A)+\mathrm{LIS}(B) 可能的最大值

Samples

数据范围

2N3×1051AiN1BiN2≤N≤3×10^5\\ 1≤A_i≤N\\ 1≤B_i≤N

什么是 最长上升子序列?

序列的子序列是指从原序列中删除零个或多个元素,然后在不改变顺序的情况下将剩余的元素串联起来得到的序列。 一个序列的最长上升子序列是该序列中长度最大的并且严格递增的子序列。

本题采用 Subtask 评测, 请注意实现细节