#P5358. 区间乘积

    ID: 5676 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 2 上传者: 标签>教师测试基础组前缀和子序列枚举普及−

区间乘积

题目描述

说明




有一个整型数组a,数组中包含n个整数,有q次查询,每次查询包含一个区间左端点L,右端点R和一个整数len,要求根据每次查询输出能否从这个区间中选出来一个子序列(子序列是指从原序列中删除零个或多个元素后,不改变剩余元素的相对顺序所得到的新序列。例如,对于数组 [1 0 -1]而言,[1 -1]、[0]、[1 0 -1] 都是其子序列,而 [0 1] 不是。),同时满足以下两个条件: 




1.子序列所有数相乘最后结果为0 




2.子序列的长度为len 

输入格式




第一行输入两个整数n和q,分别代表数组的长度和查询次数。 




第二行n个整数表示数组中的每一个数字。 




接下来的q行,每行3个正整数LRlen分别表示查询区间的左端点和右端点以及要求的序列长度。 




对于60%的数据:n<=1000q<=10001<=L<=R<=n1<=len<=n。 




对于100%的数据:n<=100000q<=1000001<=L<=R<=n1<=len<=n。

对于所有的1<=i<=n -100<=a[i]<=100

输出格式

输出共q行,如果第i次询问有满足条件的子序列存在,则第i行输出"YES",否则输出"NO"

样例

输入

6 3
-1 0 2 3 0 4
3 4 1
2 4 2
4 6 4

NO

输出

YES
NO

提示




对于第一次询问,无论怎么样选择也没办法选择出来一个子序列,使其长度为1,并且乘积为0。 




对于第二次询问,可以选择第2个数和第3个数组成一个子序列,这样乘积为0,并且子序列长度为2两个条件都满足。 




对于第三次询问,区间长度为3,不可能选择出来一个区间的子序列长度为4。