P0026

序列修改(modify)

序列修改(modify)

给定两个长度为 nn 的整数序列 a1,a2,…,ana_1,a_2,\ldots,a_n 和 b1,b2,…,bnb_1,b_2,\ldots,b_n。

你可以进行以下两类操作任意多次:

  • 选择一个区间 [l,r][l,r]。若满足 r≥plr\ge p_l,则可以将区间内所有数同时减小 11。
  • 选择一个区间 [l,r][l,r]。若满足 l≤qrl\le q_r,则可以将区间内所有数同时增加 11。

操作过程中序列中的数可以变为负数。

对于每组测试数据,请判断是否可以将序列 aa 变成序列 bb。

样例 1 输入

2
2
6 3
4 6
3 3
1 1
4
1 2 6 1
5 1 2 4
2 5 5 5
1 2 3 2

样例 1 输出

NO
YES

样例 1 解释

第一组测试数据中,所有满足条件的区间减小操作都无法使用,因此不存在合法方案使序列变为目标序列。

第二组测试数据中,存在若干次合法区间操作,可以将 [1,2,6,1][1,2,6,1] 变为 [5,1,2,4][5,1,2,4],因此答案为 YES。

样例 2

见附加文件中的 modify2.in 和 modify2.ans。

该样例满足测试点 33 的限制。

样例 3

见附加文件中的 modify3.in 和 modify3.ans。

该样例满足测试点 66 的限制。

样例 4

见附加文件中的 modify4.in 和 modify4.ans。

该样例满足测试点 88 的限制。

样例 5

见附加文件中的 modify5.in 和 modify5.ans。

该样例满足测试点 1313 的限制。

样例 6

见附加文件中的 modify6.in 和 modify6.ans。

该样例满足测试点 2020 的限制。

输入格式

本题有多组测试数据。

第一行包含一个正整数 TT,表示测试数据组数。

对于每组测试数据:

  • 第一行包含一个正整数 nn;
  • 第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n;
  • 第三行包含 nn 个整数 b1,b2,…,bnb_1,b_2,\ldots,b_n;
  • 第四行包含 nn 个整数 p1,p2,…,pnp_1,p_2,\ldots,p_n;
  • 第五行包含 nn 个整数 q1,q2,…,qnq_1,q_2,\ldots,q_n。

输出格式

对于每组测试数据,输出一行。

若可以将序列 aa 变成序列 bb,输出 YES,否则输出 NO。

提示

对于所有测试数据,保证:

  • 1≤T≤5×1051 \le T \le 5\times10^5;
  • 1≤n,∑n≤5×1051\le n,\sum n\le 5\times10^5;
  • 0≤ai,bi≤1090\le a_i,b_i\le 10^9;
  • 0≤qi≤i≤pi≤n+10\le q_i\le i\le p_i\le n+1。
测试点编号∑n≤\sum n\leq特殊性质
1,21,266A
3∼53\sim5100100无
6,76,75×1055\times10^5B
8∼128\sim1250005000无
13∼1613\sim1610510^5无
17∼2017\sim205×1055\times10^5无
  • 特殊性质 A:保证 ai,bi≤6a_i,b_i\le 6。
  • 特殊性质 B:保证 pi=qi=ip_i=q_i=i。

下发大样例