Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <algorithm>#include <iostream>#include <cstring>#include <complex>#include <cstdio>#include <string>#include <cmath>#include <queue>using namespace std;typedef unsigned long long LL;const int MOD = int(1e9)+7;const int INF = 0x3f3f3f3f;const double EPS = 1e-9;const double PI = acos(-1.0); //M_PI;const int maxn = 2000001;int n;LL p[maxn] , t[maxn] , ans;void merge(int first , int last){int mid = (first + last) / 2;int i1 = 0 , i2 = first , i3 = mid + 1;while(i2 <= mid && i3 <= last){if(p[i2] > p[i3]){t[i1 ++] = p[i3 ++];ans += mid - i2 + 1;}else