#P10995. 【MX-J3-T2】Substring
【MX-J3-T2】Substring
题目描述
你有一个数列 ,其中 各出现了一次。
当你任意选一对 ,并将 排成一行,你就得到了 的一个子串,记为 ,称 为左端点, 为右端点。
你需要把 所有子串按字典序从小到大排序。但是为了避免输出量过大,我会给出 个问题,每次给出一个 ,求字典序第 小的子串左右端点。
如果你不知道什么是字典序,看这里:
对于两个数列 ,称 的字典序小于 (记为 ),当且仅当存在自然数 使 的前 个数相同且 。
特别地,若 是 的前缀且 ,也认为 的字典序小于 。
例如:
- (当 )
- (当 )
- ( 是 前缀)
输入格式
输入的第一行有两个正整数 表示序列长度和询问个数。
第二行有 个正整数 ,表示这个数列。
之后有 行,每行有一个正整数 ,表示要求的子串的排名。
输出格式
对于每个问题,输出一行两个整数 ,表示字典序第 小的子串是 。
3 6
3 1 2
1
2
3
4
5
6
2 2
2 3
3 3
1 1
1 2
1 3
50 25
42 22 27 8 44 11 14 31 37 10 48 15 12 40 13 4 25 9 19 5 2 18 6 1 32 3 38 33 43 34 46 47 23 35 21 20 45 39 50 7 36 17 24 29 16 30 49 26 28 41
1178
991
755
1094
689
132
671
635
421
659
448
334
327
213
1206
453
1160
583
388
781
150
692
23
1162
62
37 48
27 44
3 28
1 46
43 47
20 34
33 37
2 19
15 44
2 43
7 27
6 31
6 24
4 29
32 37
7 32
5 44
19 47
13 47
44 45
23 24
43 50
24 46
5 46
26 30
提示
【样例解释 #1】
数列 共有 个子串,从小到大排序的结果为:。
【数据范围】
测试点编号 | 特殊性质 | ||
---|---|---|---|
对于全体数据,保证 ,, 中 各有一个,输入皆为整数。