火车调度
时间限制:1秒 内存限制:256M
【题目描述】
H先生目前在火车站,他注意到车站有很多站台。他觉得站台数量太多了,所以打算统计有多少真正需要的站台。
H先生同样注意到这个车站的一个有趣的事实:出发和到达时刻表每两天就会重复一次,并且时刻表满足所有n列火车在第一天到达车站,并且在第二天离开。注意按这种方式,没有火车会在所有火车都到达之前离开。
车站的站台足够长,可以满足所有n列火车都能在同一站台停成一列。然而,如果火车 i先进入站台,然后j进入同一站台,则火车i不可以在火车j离开站台之前离开。
H先生想知道在不存在由于排在某列火车前面的火车还没离开导致这列火车无法离开的情况下,最少需要多少站台可以使所有火车都停下。
【输入格式】
第一行一个整数 n(1≤n≤2×105),表示火车的数量。
第二行包含 n 个整数 ai(1≤ai≤n, ∀i≠j,ai≠aj),表示第i列火车在第一天第ai个到达车站。序列 (ai) 是一个排列。
第三行包含n个整数 bi(1≤bi≤n, ∀i≠j,bi≠bj),表示第i列火车在第二天第bi个离开车站。序列 (bi) 是一个排列。
【输出格式】
输出一行一个整数,表示最少需要多少个站台。
【输入输出样例1】
Input
5
3 5 2 4 1
3 2 5 1 4
Output
22
【样例说明】
你点了 1,3,4 这三个在套餐中的餐品,这三个餐品单点的总价为10+8+9=27,大于套餐的价格14,因此收银的女士会将这些餐品按照14元收费。除此之外的6,7两个餐品不在套餐中,因此单独收费。故总花费为14+5+3=22。
【输入输出样例2】
Input
5
3 1 2 5 4
4 2 3 1 5
Output
4
【样例说明】

上图展示了一个样例二中站台上可能的列车调度情况。列车上 (i:a_i/b_i) 的标签表示第 i 列火车在第一天第 a_i 个到达车站,然后在第二天第 b_i 个离开车站。火车 (2:1/2) 不能比火车 (4:5/1) 更早离开车站。
【输入输出样例3】
Input
3
3 2 1
1 2 3
Output
1
【样例说明】
所有火车均可在同一站台排成一列,没有任何问题。
【测试点性质】
| 子任务 | 附加限制 | 分值 |
|---|---|---|
| \(1\) | \(n\le 10\) | \(21\) |
| \(2\) | 最小所需站台数要么是 \(1\),要么是 \(2\) | \(18\) |
| \(3\) | \(n\le 1\ 000\) | \(31\) |
| \(4\) | 无附加限制 | \(40\) |
【来源】
Mr.he