3750: 排列(第四轮04)
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:2
解决:1
题目描述
你有一个长度为 n 的排列 a1 , a2 , … , an 。
你需要对它进行 q 次操作:每次给定 l, r, k ,代表把区间 a [l, r]循环右移 k 次。
每次移动过后,你需要回答整个排列是否存在三元上升子序列。
形式化地,即是否存在 i < j < k 使得 ai < aj < ak 。
注:把一个序列 b1 , b 2, … . , b m 环右移一次后, 它会变成 bm , b1 , b 2, … , bm−1 。
输入
第一行一个整数 n,代表排列长度。
接下来一行 n 个整数,依次代表 a1 , a2 , … , an 。
接下来一行一个整数 q,代表询问次数。
接下来 q 行,每行三个整数 l, r, k,意义见上。
输出
共 q 行。每次操作完毕后,若存在三元上升子序列,输出一行 ”YES“,否则输 出一行 ”NO“。
样例输入 复制
7
7 5 6 3 4 2 1
5
4 5 1
2 5 2
2 6 3
2 7 3
1 7 4
样例输出 复制
NO
YES
NO
YES
YES
提示
【数据范围】
对于 40% 的数据, n, q ≤ 300。
对于 100% 的数据, 1 ≤ n, q ≤ 120000。
保证每次询问的 l, r, k 都满足 l ≤ r ≤ n,且 0 ≤ k ≤ r − l + 1。