ans

zhangjinghao 2023-12-16 16:20:30 10 返回题目

#include <bits/stdc++.h>
using namespace std;
long long n, a[1000010], m,b[1000010],c[2000010],ans;
void msort(int l,int r){
	if(l>=r){
		return ;
	}
	int mid=(l+r)/2;
	msort(l,mid);
	msort(mid+1,r);
	int i=l,j=mid+1,k=l;
	while(i<=mid&&j<=r){
		if(a[i]<=a[j]){
			c[k++]=a[i++];
		}else{
			c[k++]=a[j++];
			ans+=(long long)(mid-i+1);
		}
	}
	while(i<=mid){
		c[k++]=a[i++];
	}
	while(j<=r){
		c[k++]=a[j++];
	}
	for(int i=l;i<=r;i++){
		a[i]=c[i];
	}
}
int main() {
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>a[i];
	}
	msort(1,n);
	cout<<ans;
    return 0;
}
{{ vote && vote.total.up }}