C++9018:2411——車箱重組

題目來自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1613php

題目描述

在一箇舊式的火車站旁邊有一座橋,其橋面能夠繞河中心的橋墩水平旋轉。一個車站的職工發現橋的長度最多能容納兩節車箱,若是將橋旋轉180度,則能夠把相鄰兩節車箱的位置交換,用這種方法能夠從新排列車箱的順序。因而他就負責用這座橋將進站的車箱按車箱號從小到大排列。他退休後,火車站決定將這一工做自動化,其中一項重要的工做是編一個程序,輸入初始的車箱順序,計算最少用多少步就能將車箱排序。ios

 

輸入

第一個是車箱總數N(不大於10000),接下來是N個不一樣的數表示初始的車箱順序(不必定在1行)。spa

 

輸出

一個數據,是最少的旋轉次數。code

樣例輸入

4
4
3
2
1

樣例輸出

6

提示

輸出最後一行後有回車blog

做者分析:冒泡排序,直接搬個人模板。排序

#include <iostream>
using namespace std;

int ans = 0;
void bubble(int n,int* a){
    for (int i = 0;i < n;i++){
        for (int j = 0;j < n - 1;j++){
            if (a[j] > a[j + 1]){
                swap(a[j],a[j+1]);
                ans++;
            }
        }
    }
}

int main(){
    int n;
    cin >> n;
    int a[n+1];
    for (int i = 0;i < n;i++) cin >> a[i];
    bubble(n,a);
    cout << ans << endl;
    return 0;
} 
相關文章
相關標籤/搜索