逆序对怎么 WA 了
  • 板块学术版
  • 楼主残阳如血
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/28 07:55
  • 上次更新2023/10/28 08:33:25
查看原帖
逆序对怎么 WA 了
726139
残阳如血楼主2023/10/28 07:55
#include <iostream>
const int MAXN = 1e5 + 10;

int n, ans, a[MAXN], t[MAXN];

void sort(int l, int r) {
	if (l == r) return ;
	int mid = (l + r) / 2, k = 0, i = l, j = mid + 1;
	sort(l, mid), sort(mid + 1, r);
	while (i <= mid && j <= r) {
		if (a[i] <= a[j]) t[k++] = a[i++];
		else {
			ans += r - mid - i + l;
			t[k++] = a[j++];
		}
	}
	while (i <= mid) {
		ans += r - mid - i + l;
		t[k++] = a[i++];
	}
	while (j <= r) t[k++] = a[j++];
	for (int ind = l, cnt = 0; ind <= r; ++ind, ++cnt)
		a[ind] = t[cnt];
}

int main() {
	std::cin >> n;
	for (int i = 1; i <= n; ++i) {
		std::cin >> a[i];
	}
	sort(1, n);
	std::cout << ans;
	return 0;
}
2023/10/28 07:55
加载中...