求逆序对数
总时间限制:
500ms
内存限制:
65536kB
描述
对于一个长度为N的整数序列A,满足i < j 且 Ai > Aj.的数对(i,j)称为整数序列A的一个逆序
请求出整数序列A的所有逆序对个数
输入
输入包含多组测试数据,每组测试数据有两行
第一行为整数N(1 <= N <= 20000),当输入0时结束
第二行为N个整数,表示长为N的整数序列
输出
每组数据对应一行,输出逆序对的个数
样例输入
5 1 2 3 4 5 5 5 4 3 2 1 1 1 0
样例输出
0 10 0
错误思路:
首先跟大家讲一下,我最开始的时候的思路,首先输入n和a[1~n],如果n=0就直接break退出了(直接return也是可以的),然后进行双重for循环j=i+1保证i<j的,然后进行判断,如果a[i]>a[j]的话,那么将计数器++,循环过后输出sum就行了。
错误代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
while(1){
int n,sum=0;
cin>>