首页 > 试题广场 >

行走

[编程题]行走
  • 热度指数:1060 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小美正在一个无限大的二维坐标轴上运动,初始时她位于坐标 (x,y)

她将基于一个由 n 个整数组成的数组 \{a_1, a_2, \dots, a_n\} 进行移动,对于第 i 次移动,她都需要选择这样两个整数 lr,满足 |l| + |r| = a_i,随后移动到 (x + l, y + r) 这个位置。

现在请问,n 次移动后,她能否恰好移动到 (p,q) 这个位置。

输入描述:
第一行一个整数 t(1\leq t\leq 1000),表示数据组数。对于每组数据格式为:
第一行一个整数 n(1\leq n\leq 10^5),表示数组长度。
第二行 n 个整数,第 i 个整数为 a_i(0\leq a_i\leq 1),表示每次移动的距离。
第三行四个整数 x,y,p,q(-10^{18}\leq x,y,p,q\leq 10^{18}),分别表示起点的横纵坐标,终点的横纵坐标。
数据保证单个测试文件 \sum n\leq 10^5


输出描述:
对于每组数据输出一个字符串,若可以恰好移动到 (p,q) 输出 "YES" ,否则输出"NO"。
示例1

输入

2
2
0 0
1 1 1 1
3
1 1 1
1 1 2 2

输出

YES
NO