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