题目名称 1545. [UVa 1402] 机器排序
输入输出 roboticsort.in/out
难度等级 ★★★★
时间限制 2000 ms (2 s)
内存限制 256 MiB
测试数据 1
题目来源 Gravatarcstdio 于2014-03-11加入
开放分组 全部用户
提交状态
分类标签
平衡树 UVa
分享题解
通过:60, 提交:132, 通过率:45.45%
GravatarLink 100 0.168 s 1.86 MiB C++
Gravatar 100 0.178 s 3.75 MiB C++
Gravatar 100 0.181 s 3.75 MiB C++
GravatarAntiLeaf 100 0.188 s 3.34 MiB C++
Gravatar 100 0.188 s 3.75 MiB C++
Gravatar 100 0.190 s 3.75 MiB C++
GravatarCSU_Turkey 100 0.191 s 2.99 MiB C++
Gravatargls1196 100 0.197 s 2.99 MiB C++
GravatarAntiLeaf 100 0.198 s 3.34 MiB C++
GravatarKing 100 0.209 s 6.42 MiB C++
关于 机器排序 的近10条评论(全部评论)
险些1a
23333
GravatarCSU_Turkey
2017-12-21 20:14 9楼
这题有毒QAQ
GravatarHzoi_Mafia
2017-10-20 14:55 8楼
回复 @하루Kiev :
太强了!!!
GravatarCooook
2017-08-04 07:21 7楼
打了5个多小时
非旋treap~~~水之
Gravatar하루Kiev
2017-08-03 20:52 6楼
splay双旋转注意快到根的时候不要双旋了……WA至死……
GravatarFoolMike
2017-06-28 22:02 5楼
回复 @noip :
Gravatar赵赵赵
2014-04-08 16:43 4楼
回复 @noip :
ACM系列比赛的格式,单个数据文件中包含多组数据,采用标准输入输出
Gravatarcstdio
2014-03-15 07:41 3楼
回复 @cstdio :
就一个点什么神奇的情况
Gravatarnoip
2014-03-14 22:48 2楼
splay真好玩蛤蛤蛤(不过目测考试的时候写不出来)……
Gravatarcstdio
2014-03-14 22:34 1楼

1545. [UVa 1402] 机器排序

★★★★   输入文件:roboticsort.in   输出文件:roboticsort.out   简单对比
时间限制:2 s   内存限制:256 MiB

【题目描述】

在布拉格捷克理工大学(Czech Technical University)某个幽深的角落,有一些实验室用来检测各种材料的机械和电气性能。在昨天的一项展示中,你已经见识了其中的一间是如何变成全新的多媒体实验室的。但那里仍然有别的实验室,服务于它们最初的用途。

在这个任务中,你将要给这样的一间实验室中一个搬运样品的机器人编写程序。设想有一些材料样品在一条传送带上排成一排。这些样品有不同的高度,这可能会给接下来的处理带来麻烦。为了消除这样的隐患,我们需要将这些样品按高度升序排列。

排序由一条机械臂完成,它可以抱起一些连续的样品并且将它们掉头,这样一来它们在传送带上的顺序就被翻转。换句话说,一个操作可以翻转A到B(含两端)的样品顺序。

给样品排序的一个可能方式是找到高度最小的样品P1,将1到P1的样品顺序翻转。这将使得P1成为第一个样品。接下来我们找到高度第二小的样品P2,将2到P2的样品顺序翻转。然后找到高度第三小的样品,以此类推。

这张图片展示了一个含6个样品的简单例子。高度最小的样品在4号位置,因此机械臂旋转前4个样品。高度第二小的样品在6号位置,因此下一个操作是翻转2-6号样品位置。第三步是翻转3-4号样品位置,以此类推。

你的任务是找到用上述算法给样品排序时正确的翻转操作序列。如果不止一个样品有相同的高度,必须保持它们的顺序不变:在初始序列中靠前的在最终序列中也应该靠前。

【输入格式】

输入包含多组数据。

每组数据有两行。第一行是一个正整数N,即样品个数(1<=N<=100000)。

第二行有N个由空格分隔的正整数,即各样品的高度,按最初的样品顺序给出。

输入结束标志为一行一个0。

【输出格式】

对每组数据,输出一行恰好N个整数P1,P2,...,PN,彼此由空格分隔。每个Pi应该是一个正整数(1<=Pi<=N),给出了第i次翻转操作前第i个样品的位置。

注意如果一个样品已经站在了正确的位置Pi上,你也应该输出Pi,表明“Pi到Pi的样品”(即Pi一个样品)应该被翻转。

【样例输入】

6
3 4 5 1 6 2
4
3 3 2 1
0

【样例输出】

4 6 4 5 6 6
4 2 4 4 

【来源】

Central Europe Regional Contest 2007 Robotic Sort

UVa 1402 Robotic Sort