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。

来源/分类