多米诺骨牌
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

多米诺骨牌(domino)是一种木制、骨制或塑料制成的长方体骨牌,按一定间距排列成行,轻轻碰倒第一枚骨牌,其余的骨牌就会产生连锁反应,依次倒下。

我们将这个多米诺骨牌的连锁反应简化,假设一个骨牌受到大于 g 的力就会倒塌。当它因收到来自左侧的力倒塌时,它就会向右侧倒去,同时对右侧的骨牌施加大小为 a 的力。另一侧的方向相反,a 大小不变。

Bruce12138有 n 个多米诺骨牌排成一列,第 i 个骨牌受到大于 g_i 的力后才会倒塌,倒塌后将对倒塌方向的下一个骨牌施加 a_i 的力。Bruce12138想要找到一个位置,这个位置在两个骨牌的中间,或者在最左侧骨牌的左边,或者在最右侧骨牌的右边。然后他会在一次推倒操作中,推倒这个位置左右两侧的骨牌(可以没有)。请问他能否通过一次推倒操作使得所有的多米诺骨牌都倒下?

能则输出"Yes",不能则输出"No",不含引号。

输入描述:

第一行一个整数  ,表示多米诺骨牌的数量。

第二行 n 个用空格分开的整数,表示第 i 个骨牌能对下一个骨牌施加的力

第三行 n 个用空格分开的整数,表示第 i 个骨牌受到大于  的力就会倒塌。

输出描述:

一行一个字符串,表示能否通过一次推倒操作使得所有的多米诺骨牌都倒下。
示例1

输入

复制
2
2 2
1 1

输出

复制
Yes

说明

在任何一个位置都可以推倒全部的多米诺骨牌。