逆序对模板题
查看原帖
逆序对模板题
704668
WZWZWZWY楼主2023/9/7 20:57

逆序对模板题的AC代码直接复制错了是为什么

#include <iostream>
using namespace std;
long long ans,a[500001],b[500001];
void gui(int l,int r){
	if (l == r) return;
	int i = l, mid = (l+r)/2,j = mid+1,k = l;
	gui(l,mid);
	gui(mid+1,r);
	while (i <= mid && j <= r)
		if (a[i] <= a[j]) b[k++] = a[i++];
		else b[k++] = a[j++],ans += mid - i + 1;
	while (i <= mid) b[k++] = a[i++];
	while (j <= r) b[k++] = a[j++];
	for (int i = l; i <= r; i++) a[i] = b[i];	
}
int main(){
	int n;
	scanf("%d",&n);
	for (int i = 1; i <= n; i++){
		scanf("%d",&a[i]);
	}
	gui(1,n);
	cout << ans;
}
2023/9/7 20:57
加载中...