题目描述
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。如2 4 3 1 中,2 1,4 3,4 1,3 1是逆序,逆序数是4,为偶排列。现在给定N个互不相同的正整数构成的序列,统计该序列的逆序数。
输入格式
多组输入数据,每组第一行一个正整数N(1<=N<=1000),接下来N行每行输入一个正整数,范围在1~105。输入以文件尾结束。
输出格式
对于每组数据,输出该序列的逆序数,每组输出独占一行。
输入样例
10
11
19
13
1
8
3
2
16
5
10
输出样例
26
#include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n))
{
int jg=0;
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(int i=0;i<n;i++)
{
for(int j=i;j<n;j++)
{
if(arr[i]>arr[j])
{
jg++;
}
}
}
printf("%d\n",jg);
}
}