营救
题号:NC20910
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

YYF在建立起一个完善的情报网络之后。收到了来自上级的指示。他需要潜入敌方的监狱中去营救被俘虏的RMY。
已知在YYF潜入监狱的路径上是一条直线并且有一些点,YYF只能在这些点上行走,每一个点都有一个影响值,只有当两个点的影响值加起来不大于两个点之间的距离时,YYF才能在这两个点之间跳跃。由于YYF和RMY是一对冤家,所以他不想RMY提早被救出来,但是他又不能在这里干坐着,因为陈独秀会打他。所以你需要求出YYF在去监狱的路径上最多能够经过几个点。每个点只能经过一次,已知在最开始的时候YYF可以随机选择一个点作为起点。

输入描述:

第一行一个数N(N≤106),表示有N个点。
第二行有N个整数,第i个整数xi (xi≤107)个表示第i个点的坐标
之后的一行N个整数ai (ai≤100000),表示每一个点的影响值。

输出描述:

只有一行,包含一个整数,表示最多能够经过的点的数量。
示例1

输入

复制
5
1 5 7 8 12
2 1 5 2 3

输出

复制
3