我先辟个谣:通篇 vector = AI(假)
#include <bits/stdc++.h>
using namespace std;
long long fun(vector<int>& a, int l, int r) {
if (l >= r) return 0;
int mid = (l + r) >> 1;
long long cnt = fun(a, l, mid) + fun(a, mid + 1, r);
vector<int> b(r - l + 1);
int i = l, j = mid + 1, k = 0;
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 (int i = 0; i < b.size(); i++) {
a[l + i] = b[i];
}
return cnt;
}
int main(void)
{
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
n--;
long long cnt = fun(a, 0, n);
cout << cnt;
return 0;
}
这个不是 AI。