问题 5646 --分红包

5646: 分红包

时间限制: 1 Sec  内存限制: 256 MB
提交: 5  解决: 3
[提交][状态][命题人:]

题目描述

正月初一,打天梯分红包。
天梯赛后,陆老师要给大家发红包。不过由于红包太多,请你来帮忙。

陆老师手上有 n 个红包,初始第 i 个红包的金额为 a[i] 元,需要通过若干次操作,将每个红包的金额变为指定值。第 i 个红包需要变成 b[i] 元。每次操作如下:
1. 选择不是第一个也不是最后一个的第 i 个红包 (1<i<n) ;
2. 将第 i 个红包的金额,从 a[i] 元变为 a[i+1]+a[i-1]-a[i] 元。

允许对一个红包进行多次重复操作。问能否通过若干次操作,使得每个红包的金额均为指定值。

输入

第一行包含一个正整数 n (2≤n≤10^5) ,表示红包数量。
第二行包含 n 个整数 a[1],a[2],...,a[n] ,表示每个红包的初始金额。
第三行包含 n 个整数 b[1],b[2],...,b[n] ,表示每个红包的目标金额。 

输出

如果可以通过若干次操作,使得每个红包的金额均为指定值,则输出 "Yes" ,否则输出 "No" 。(不包含引号)
样例输入
Copy
样例1:
4
7 2 4 12
7 15 10 12

样例2:
3
4 4 4
1 2 3
样例输出
Copy
样例1:
Yes

样例2:
No

提示

样例解释
在第 1 组数据中,可以进行以下操作:
[7,2,4,12]->[7,2,10,12]->[7,15,10,12]
在第 2 组数据中,无法变成指定金额。

来源

[提交][状态]