区间的值域连续段
题号:NC15430
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你一个序列,每次查询一段区间中长度为 1,2,...,10 的极长值域连续段个数
定义值域连续段为:
把区间里面所有数排序后去重,设排序后得到的序列为 b
如果对于二元组(l,r) 满足 bl,bl+1,...,br 中每个数为前一个数 +1
而且对于二元组(l,r+1),(l-1,r) 均不满足,我们称 (l,r) 为一个长度为 r-l+1 的极长值域连续段

输入描述:

第一行两个数n,m,表示序列的长度和查询的次数
之后一行n个数表示这个序列
之后m行每行两个数l,r表示查询的区间

输出描述:

对于每次询问,输出一个长度为10的字符串,第i个字符表示长度为i的极长连续段个数mod 10的结果
示例1

输入

复制
5 5
1 2 4 5 6
1 5
1 2
3 4
3 5
4 5

输出

复制
0110000000
0100000000
0100000000
0010000000
0100000000
示例2

输入

复制
8 9
2 3 3 3 3 6 6 6
1 8
2 3
4 5
6 8
1 2
3 4
5 6
3 8
5 5

输出

复制
1100000000
1000000000
1000000000
1000000000
0100000000
1000000000
2000000000
2000000000
1000000000

备注:

对于100% 的数据,1≤ n,m,ai≤ 106