P14097 [POCamp 2022] 救火 / Brinnande träd

题目描述

一场森林火灾在一个自然保护区爆发。该区域有一种稀有的树种,世界其他地方不存在。你身处森林中,在回家的路上,你打算尽可能拯救更多的树。 总共有 $ N $ 棵稀有树,编号从 1 到 $ N $,你将按这个顺序从它们身边跑过。拯救第 $ i $ 棵树需要 $ A_i $ 秒,但你必须最迟在第 $ X_i $ 秒**开始**拯救,否则这棵树会被烧毁。另一方面,即使第 $ X_i $ 秒落在你正在拯救该树的过程中也没有关系。 在树与树之间奔跑对你来说不花任何时间,但你只能向前跑,因此只能按你遇到它们的顺序救树。另外,你已知 $ X_1 \le X_2 \le X_3, \dots \le X_N $。 求你最多能救下多少棵树。

输入格式

第一行包含一个整数 $ N $($ 1 \le N \le 4 \cdot 10^5 $),表示树的数量。 第二行包含 $ N $ 个整数 $ X_i $($ 0 \le X_i \le 10^9 $),表示你必须开始拯救第 $ i $ 棵树的最晚秒数。 第三行包含 $ N $ 个整数 $ A_i $($ 1 \le A_i \le 10^9 $),表示拯救第 $ i $ 棵树所需的时间。

输出格式

输出一个整数,为可以拯救的树的最大数量。

说明/提示

### 子任务 **本题采用捆绑测试。** | 子任务编号 | 得分 | 限制 | |:-:|:-:|---| | 1 | 10 | $ A_1 = A_2 = \dots = A_N $ | | 2 | 18 | $ X_1 = X_2 = \dots = X_N $ | | 3 | 15 | $ N, A_i, X_i \le 100 $ | | 4 | 22 | $ N \le 2000 $ | | 5 | 35 | 无额外限制 |