Lang:G++
Edit12345678910111213141516171819202122232425262728293031// #include "include.h"#include <bits/stdc++.h>using namespace std;const int maxn = 100000 + 5;int N;int a[maxn];int T[maxn];long long ans = 0;void merge_sort(int l, int r){if(l < r){int mid = l + (r - l) / 2;int p = l, q = mid + 1, i = l;merge_sort(l, mid);merge_sort(mid + 1, r);while(p <= mid || q <= r){if(q > r || (p <= mid && a[p] <= a[q])) T[i++] = a[p++];else {for(int j = p; j <= mid; j++){ans += (a[j] ^ a[q]);}T[i++] = a[q++];// ans += mid - p + 1;}}for(int i = l; i <= r; i++) a[i] = T[i];}}