Tree_array;
The portal:http://acm.hdu.edu.cn/showproblem.php?pid=2689
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
const int M = 20005;
int Bit[M+5];
void Insert(int x,int value) {
for(int i = x ; i <= M ; i += i & -i) {
Bit[i] += value;
}
}
int Query(int x) {
int ret = 0;
for(int i = x ; i ; i -= i & -i) {
ret += Bit[i];
}
return ret;
}
void Deal_with() {
int n;
while(~scanf("%d",&n)) {
memset(Bit,0,sizeof(Bit));
int tempa;
int cnt = 0;
for(int i = 0 ; i < n ; i++) {
scanf("%d",&tempa);
cnt += i - Query(tempa);
Insert(tempa,1);
}
printf("%d\n",cnt);
}
}
int main(void) {
//freopen("a.in","r",stdin);
Deal_with();
return 0;
}