1683 车厢重组

2018-06-18 04:05:51来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

个人博客:doubleq.win

1683 车厢重组

 

 时间限制: 1 s
 空间限制: 1000 KB
 题目等级 : 白银 Silver
 
 
 
题目描述 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 } 

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:1.7.04 石头剪刀布(字符数组)

下一篇:二分查找 —— 优化自己的思想(快速查找)