"AC"
1#include <bits/stdc++.h>2 using namespacestd;3typedefLong Longll;4 5 Const intmaxn=1e5+2;6 intA[MAXN];7 intTMP[MAXN];8 intN;9 ll ans;Ten voidMerge (intLintMintR) One { A inti=l,j=m+1; - intk=l; - while(i<=m&&j<=R) the { - if(a[i]<=A[j]) - { -tmp[k++]=a[i++]; + } - Else + { Atmp[k++]=a[j++]; atans+= (LL) (m-i+1); - } - } - while(i<=m) tmp[k++]=a[i++]; - while(j<=r) tmp[k++]=a[j++]; - for(inti=l;i<=r;i++) in { -a[i]=Tmp[i]; to } + } - the voidMerge_sort (intLintR) * { $ if(l<R)Panax Notoginseng { - intMid= (l+r) >>1; the Merge_sort (l,mid); +Merge_sort (mid+1, R); A Merge (L,MID,R); the } + } - intMain () $ { $ while(~SCANF ("%d",&N)) - { - for(intI=0; i<n;i++) the { -scanf"%d",&a[i]);Wuyi } theans=0; -Merge_sort (0, N-1); Wuprintf"%lld\n", ans); - } About return 0; $}
Merge sort to find the number of reverse order
"Merge sort for reverse order"