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