#include<bits/stdc++.h>
using namespace std;
const long long sz=114514;
long long n;
long long a[sz],r[sz];
long long ans=0;
void in(long long n,long long a[]){
	for(int i=0;i<n;i++) cin>>a[i];
}
void msort(int s,int t){
	if(s==t) return;
	int mid=(s+t)/2;
	msort(s,mid);
	msort(mid+1,t);
	int i=s,j=mid+1,k=s;
	while(i<=mid&&j<=t){
		if(a[i]<=a[j]){
			r[k]=a[i];
			k++;
			j++;
		}else{
			r[k]=a[j];
			k++;
			j++;
			ans+=mid-i+1;
		}
	}
	while(i<=mid){
		r[k]=a[i];
		k++;
		i++;
	}
	while(j<=t){
		r[k]=a[j];
		k++;
		j++;
	}
	for(int i=s;i<=t;i++) a[i]=r[i];
}
int main(){
	system("color F1");
	cin>>n;
	in(n,a);
	msort(0,n-1);
	cout<<ans<<endl;
	return 0;
}

0 comments

No comments so far...

Information

ID
796
Time
1000ms
Memory
256MiB
Difficulty
8
Tags
# Submissions
197
Accepted
35
Uploaded By