CF847B.Preparing for Merge Sort

传统题 时间 2000 ms 内存 256 MiB 8 尝试 1 已通过 1 标签

Preparing for Merge Sort

题目描述

Ivan有一个包含nn个不同整数的数组。他计划将这个数组变成升序的。Ivan喜欢归并排序,所以他想将这个数组变成一个或多个升序数组,之后将它们合并。

他用如下的方式将原数组变成一个或多个升序数组:

Ivan将对数组进行若干次迭代,直到数组中所有元素都被放入新数组。

对于每次迭代,Ivan将依次从左到右遍历每个还未放入新数组中的元素。如果某个元素是该次迭代中的第一个元素,那么它将会放入属于本次迭代的新数组中。如果某个元素不是该次迭代中的第一个元素,那么当且仅当它比属于本次迭代的新数组中最后一个数大时,它将被放入属于本次迭代的新数组的末尾。

更具体的,对于一串数[1,3,2,5,4][1,3,2,5,4],第一次迭代将取出[1,3,5][1,3,5]33个元素,第二次迭代将取出[2,4][2,4]22个元素,因为它们是严格递增的。

样例

5
1 3 2 5 4
1 3 5 
2 4 
4
4 3 2 1
4 
3 
2 
1 
4
10 30 50 101
10 30 50 101 

在线编程 IDE

建议全屏模式获得最佳体验