Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <string>#include <stdio.h>#include <limits.h>#include <memory.h>using namespace std;#define MAXN 100010#define MIN(a,b) ((a)<(b)?(a):(b))long long A[MAXN];long long B[MAXN];long long solve(int N) {long long ans = 0;for(int l=2;l<N*2;l*=2) {for(int st=0;st<N;st+=l) {int i = st;int edi = MIN(st+l/2,N);int j = st+l/2;int edj = MIN(st+l,N);int idx = st;while(i<edi && j<edj) {if(A[i] > A[j]) {ans += (edi-i);B[idx++] = A[j++];