1. 程式人生 > >P1116 車廂重組

P1116 車廂重組

algo string logs include 數據 turn 輸出 旋轉 col

題目描述

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

輸入輸出格式

輸入格式:

輸入文件有兩行數據,第一行是車廂總數N(不大於10000),第二行是N個不同的數表示初始的車廂順序。

輸出格式:

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

輸入輸出樣例

輸入樣例#1:
4
4 3 2 1 
輸出樣例#1:
6

重溫冒泡的精髓
技術分享
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<cmath>
using namespace std;
int n,a[1200],ans,t;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)    scanf("%d",&a[i]);
    
    
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(a[j-1]>a[j]) { t=a[j]; a[j]=a[j-1]; a[j-1]=t; ans++; } } cout<<ans; return 0; }
View Code



P1116 車廂重組