南邮 OJ 1870 Sorting Problem I

Sorting Problem I

时间限制(普通/Java) :  1000 MS/ 2000 MS          运行内存限制 : 16384 KByte
总提交 : 693            测试通过 : 96 

比赛描述

openxxx喜欢一切有序的事物,现在有一串数字,openxxx希望以最小的代价对这串数字从小到大进行排序(实现非递减序)。

openxxx只会交换任意两个相邻的数字,每做一次交换,就要消耗openxxx一格的体力值,当然openxxx希望消耗的体力值越少越好,你能计算出openxxx至少要消耗多少格体力值吗?



输入

多组测试数据,每组数据第一行包含一个正整数N(1<=N<=500)表示这串数字的个数,第二行包含N个正整数x1 x2 x3 …… xN(1<=xi<=N,1<=i<=N)用来描述这串原始数字序列,任意两个相邻数字之间用一个空格隔开。 


输出

每组测试数据对应一行输出,仅包含一个整数p,表示最少需要消耗的体力值数。


样例输入

2
1 2
3
3 1 2
2
1 1

样例输出

0
2
0

题目来源

2012南京邮电大学第四届大学生程序设计大赛(预赛)





#include<iostream>

#define MAX_N 501
int a[MAX_N];

int main(){
	int n,i,j,count;
	while(scanf("%d",&n)==1){
		for(i=0;i<n;i++){
			scanf("%d",a+i);
		}
		count = 0;
		for(i=0;i<n;i++){
			for(j=i+1;j<n;j++){
				if(a[i]>a[j]){
					count++;
				}
			}
		}
		printf("%d\n",count);
	}
}


你可能感兴趣的:(ACM,problem,sorting,I,南邮OJ)