Iota Extraction
题目描述
给定一个长为\(N\)的序列\(\{a_i\},i=1,2 \cdots N\),对其进行如下操作若干次:
(1)从序列中挑选出若干个递增的数\(v, v+1, v+2 \cdots v+(k-1)\)(这几个数在原序列中的位置不作要求),要求选出的个数\(k\)尽可能大,并且在\(k\)最大的前提下使第一个数\(v\)尽可能小;
(2)将这\(k\)个数从序列中移除,如果余下的序列为空则停止操作,否则继续执行第1步。
例如:\(N=16, \{a_i\} = \{1,2,2,3,3,4,5,6,6,6,7,7,7,10,11,12\}\)
第1次操作,选出\(\{1,2,3,4,5,6,7\}\),余下\(\{2,3,6,6,7,7,10,11,12\}\);
第2次操作,选出\(\{10,11,12\}\),余下\(\{2,3,6,6,7,7\}\);
第3次操作,选出\(\{2,3\}\),余下\(\{6,6,7,7\}\);
第4次操作,选出\(\{6,7\}\),余下\(\{6,7\}\);
第5次操作,选出\(\{6,7\}\),余下序列为空,结束操作。
输入序列\(\{a_i\}\),按要求的格式输出每次操作。
I/O格式
输入
第一行是一个正整数\(N\),表示序列长度;
第二行是\(N\)个正整数\(a_1, a_2 \cdots a_N\),表示该序列。
输出
设操作的总次数为\(C\),则输出\(C\)行依次描述每一步操作。每行两个正整数\(v,k\),分别表示选出的数的最小值以及个数(详见“题目描述”部分),中间用1个空格隔开。
样例
输入
16
1 2 2 6 11 7 7 10 5 6 12 3 3 4 6 7
输出
1 7
10 3
2 2
6 2
6 2
数据规模及约定
50%的数据:\(N \le 100\)
100%的数据:\(N \le 10^4, a_i \le 10^4\)
限制
1s, 64MB
来源
原创题