题目名称 | 1539. [Ural 1568] 火车车厢排序 |
---|---|
输入输出 | traincarsorting.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | cstdio 于2014-03-02加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:7, 提交:9, 通过率:77.78% | ||||
KZNS | 100 | 0.067 s | 1.08 MiB | C++ |
cstdio | 100 | 0.079 s | 0.97 MiB | C++ |
Ostmbh | 100 | 0.079 s | 1.42 MiB | C++ |
张灵犀不和我一般见识真可怕呢(笑 | 100 | 0.086 s | 0.35 MiB | C++ |
mikumikumi | 100 | 0.086 s | 0.35 MiB | C++ |
ceerRep | 100 | 0.095 s | 0.35 MiB | C++ |
Fmuckss | 100 | 0.152 s | 12.90 MiB | C++ |
mikumikumi | 40 | 0.526 s | 0.35 MiB | C++ |
mikumikumi | 20 | 0.518 s | 6.02 MiB | C++ |
关于 火车车厢排序 的近10条评论(全部评论) | ||||
---|---|---|---|---|
各种脑残.avi
| ||||
回复 @MagicLin :
啊……这是我在MC单机上截的图……不是原题中附带的…… | ||||
求命题人MC服务器。。
OIdiot
2014-03-18 19:19
2楼
| ||||
traincarsorting.in
输出文件:traincarsorting.out
评测插件在叶卡捷琳堡,有一些塔在同时被建造。建筑需要许多高质量的五金件和材料,它们中的大部分通过铁路运来。铁路运输并不总像承包商希望的那样快。火车在中间站停了太久,它们在那里被排好序并且定向到通向不同地区的铁轨。
正如你所知,货运列车车厢以如下方式被排序:火车被开到一个双向岔道,在那里每一节车厢都可以走左边或右边的岔道。之后,这些车厢重新连接起来。例如,如果车厢的顺序是“1 2 3 4 5 6 7”,它们可以被分成两部分:“1 3 5”(左岔道)和“2 4 6 7”(右岔道),然后重新连接:“1 3 5 2 4 6 7”。
请你帮助铁路工人加速车厢的排序过程。写一个程序来将重新排列给定顺序的车厢,要求将两个岔道中的车厢重新连接的次数最小。
输入文件的第一行有一个正整数N——车厢的数量(1<=N<=10000)。第二行有N个整数,即最初的车厢排列顺序。每个车厢都有一个1~N之间独特的编号。这些车厢必须被重新排列使得编号递增,从1开始。
输出文件的第一行有一个正整数K,即重新连接操作的最小次数。接下来的K+1行每行有N个正整数。在第一行输出车厢最初的顺序,接下来的每一行都输出一次重新连接后车厢的顺序。
sample 1:
5
5 1 3 2 4
sample 2:
6
6 5 2 4 1 3
sample 1:
2
5 1 3 2 4
1 2 5 3 4
1 2 3 4 5
sample 2:
3
6 5 2 4 1 3
6 4 1 5 2 3
6 1 2 3 4 5
1 2 3 4 5 6
对于40%的数据,1<=N<=10
对于60%的数据,1<=N<=1000
对于100%的数据,1<=N<=10000
Problem Author: Sergey Pupyrev
Problem Source: The XIIth USU Programing Championship, October 6, 2007