天天看點

洛谷——P1116 車廂重組

題目描述

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

輸入格式

共兩行。

第一行是車廂總數N(≤10000)。

第二行是N個不同的數表示初始的車廂順序。

輸出格式

一個整數,最少的旋轉次數。

輸入輸出樣例

輸入

4

4 3 2 1

輸出

6

使用冒泡排序

#include<stdio.h>
#define MAX 10000
int main()
{
	int N,temp,account = 0;
	int a[MAX];
	scanf("%d", &N);
	for (int i = 0; i < N; i++)
	{
		scanf("%d", &a[i]);
	}
	temp = a[0];
	for (int i = 1; i < N ; i++)
	{
		for (int i = 1; i < N; i++)
		{
			if (a[i - 1] < a[i])
			{
				continue;
			}
			else
			{
				temp = a[i - 1];
				a[i - 1] = a[i];
				a[i] = temp;
				account++;

			}
		}
	}
	printf("%d",account);
	return 0;
}