题目背景

题目描述
给定一个长为 n 的序列 bot。
有 q 次询问,每次给出三个数 l,x,y,请你求出有多少个以 l 为左端点的区间 [l,r](l≤r)使得 mex({botl,botl+1,⋯,botr})∈[x,y]。
注:一个可重集合 S 的 mex 函数 mex(S) 指的是最小的没有在 S 中出现过的非负整数,如 mex({0,1,1,3})=2。
输入格式
第一行两个正整数 n,q,表示序列的长度和询问的次数。
第二行 n 个数,表示序列 bot。
接下来 q 行,每行三个整数 l,x,y。
输出格式
输出共 q 行,每行一个整数,表示答案。
提示
对于 100% 的数据,1≤n,q≤3×105,0≤boti<n,0≤x≤y≤n,1≤l≤n。
本题采用捆绑测试。
- Subtask 1(10pts):n,q≤300。
- Subtask 2(15pts):n,q≤2000。
- Subtask 3(15pts):boti≤1。
- Subtask 4(20pts):x=y。
- Subtask 5(40pts):无特殊限制。