50分求大佬指点
查看原帖
50分求大佬指点
1349068
Zhangmocong楼主2024/8/9 16:06
#include<bits/stdc++.h>
using namespace std;

const int N=5*100000;
int a[N],n,t[N],s=0;
void msort(int x,int y){
	if(x==y) return;
	int mid=x+y>>1;
	msort(x,mid);
	msort(mid+1,y);
	int l=x,r=mid+1,k=x;
	while(l<=mid&&r<=y)
	{
		if(a[l]<=a[r])t[k++]=a[l++];
		else {
			t[k++]=a[r++];
			s+=mid-l+1;
		}
	}
	while(l<=mid)
	{
		t[k++]=a[l++];
		
	}
	while(r<=y){
		t[k++]=a[r++];
	}
	for(int i=x;i<=y;i++){
		a[i]=t[i];
	}
} 
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	msort(1,n);
	cout<<s;
	return 0;
}
2024/8/9 16:06
加载中...