为了成为最强的训练师,你决定踏上环游地区的旅程,通过收集道馆徽章来证明自己的实力。你的单人冒险始于你拥有的第一只也是唯一一只宝可梦,它是一只传说中的 Wabbit。
你的 Wabbit 初始等级为 $0$,且只能通过挑战道馆来提升等级。该地区共有 $N$ 个道馆,编号从 $1$ 到 $N$,你可以以任意顺序挑战它们。为了防止过度练级,每个道馆 $i$ 都有其专属的等级上限 $L_i$,只有当 Wabbit 的当前等级小于或等于 $L_i$ 时,你才能挑战该道馆。
由于每个道馆中需要击败的训练师数量不同,Wabbit 在挑战道馆后获得的等级提升也可能不同。具体来说,在挑战道馆 $i$ 后,Wabbit 将获得 $X_i$ 级。
每个道馆 $i$ 都会奖励成功挑战者该道馆独有的道馆徽章 $i$。请找出以最优方式挑战道馆时,你所能获得的最大道馆徽章数量。
输入格式
你的程序必须从标准输入读取数据。
第一行包含一个整数 $N$,表示道馆的数量。
第二行包含 $N$ 个整数,其中第 $i$ 个整数表示挑战第 $i$ 个道馆后 Wabbit 获得的等级提升 $X_i$。
第三行包含 $N$ 个整数,其中第 $i$ 个整数表示第 $i$ 个道馆的等级上限 $L_i$。
输出格式
你的程序必须输出到标准输出。
输出应包含一个整数,即可以获得的最大道馆徽章数量。
子任务
每个测试用例的最大执行时间为 $1.5$ 秒。对于所有测试用例,输入满足以下范围:
- $1 \le N \le 500\,000$
- $1 \le X_i, L_i \le 10^9$
你的程序将在满足以下限制的输入实例上进行测试:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 1 | 15 | $1 \le N \le 10$ |
| 2 | 9 | $L_i$ 为常数 |
| 3 | 27 | $1 \le N \le 5000$ |
| 4 | 49 | - |
样例
样例输入 1
5 4 6 3 5 2 10 6 4 8 12
样例输出 1
4
说明 1
当按照以下顺序挑战道馆时,可以获得最优解:3, 4, 1, 5。
样例输入 2
5 3 9 4 2 6 10 10 10 10 10
样例输出 2
4
说明 2
当按照以下顺序挑战道馆时,可以获得最优解:1, 3, 4, 2。
注意,在挑战完道馆 4 后,Wabbit 的等级为 $9$,这在道馆 2 的等级上限之内,因此可以挑战它。
最后,Wabbit 的等级将达到 $18$,这超过了道馆 5 的等级上限,因此无法挑战它。