全RE求助
  • 板块P1908 逆序对
  • 楼主chenxi797
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/3/7 19:49
  • 上次更新2024/3/7 21:50:24
查看原帖
全RE求助
735165
chenxi797楼主2024/3/7 19:49
#include <bits/stdc++.h>
using namespace std;
long long n,cnt = 0;
int a[500005],b[500005];
void msort(int l,int r)
{
	if (l == r) return;
	int mid = l + r >> 1;
	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]) b[k++] = a[i++];
		else b[k++] = a[j++],cnt += mid - i + 1;
	}
	while (i <= mid) b[k++] = a[i++];
	while (j <= r) b[k++] = a[j++];
	for (i = l;i <= r;i++) a[i] = b[i];
    return;
}
int main()
{
	cin >> n;
	for (int i = 1;i <= n;i++) scanf("%d",a[i]);
	msort(1,n);
	cout << cnt;
	return 0;
}
2024/3/7 19:49
加载中...