1683 车厢重组

Posted 自为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1683 车厢重组相关的知识,希望对你有一定的参考价值。

个人博客:doubleq.win

 
题目描述 Description

在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。

输入描述 Input Description

输入文件有两行数据,第一行是车厢总数N(不大于10000),第二行是N个不同的数表示初始的车厢顺序。

输出描述 Output Description

一个数据,是最少的旋转次数。

样例输入 Sample Input

4

4 3 2 1 

样例输出 Sample Output

6

 1 #include<iostream>
 2 using namespace std;
 3 int a[10001];
 4 int tot=0;
 5 int main()
 6 {
 7     int n;
 8     cin>>n;
 9     for(int i=1;i<=n;i++)
10     {
11         cin>>a[i];
12     }
13     for(int i=1;i<=n-1;i++)
14     {
15         for(int j=1;j<=n-1;j++)
16         {
17             if(a[j]>a[j+1])
18             {
19                 swap(a[j],a[j+1]);
20                 tot++;
21             }
22         }
23     }
24     cout<<tot;
25     return 0;
26 } 

 

以上是关于1683 车厢重组的主要内容,如果未能解决你的问题,请参考以下文章

codevs 1683 车厢重组(水题日常)

栈例题-火车车厢重组

P1116 车厢重组

车厢重组

车厢重组

P1116 车厢重组