记录编号 284543 评测结果 AAAAAAAAAA
题目名称 排序工作量-加强版 最终得分 100
用户昵称 Gravatar_Horizon 是否通过 通过
代码语言 C++ 运行时间 0.133 s
提交时间 2016-07-18 15:22:53 内存使用 5.56 MiB
显示代码纯文本
#define MAXN 1000110
#include <bits/stdc++.h>

using namespace std;

int n, a[MAXN];
void read(int& num) {
	num = 0; char ch = getchar();
	for(; ch < '!'; ch = getchar());
	for(; ch > '!'; ch = getchar())
		num = num * 10 + (ch ^ 48);
}

#define lowbit(i) (i&(~i+1))
int t[MAXN];

void update(int i) {
	if(i == 0) return;
	for(; i <= 1000010; i += lowbit(i))
		t[i] ++;
}

int ask(int i) {
	int ret = 0;
	for(; i > 0; i -= lowbit(i))
		ret += t[i];
	return ret;
}

int main() {
	freopen("px.in", "r", stdin);
	freopen("px.out", "w", stdout);
	read(n);

	for(int i = 1; i <= n; ++ i) {
		read(a[i]);		
		++ a[i];
	}
	//printf("%d\n", n);
	long long ans = 0;
	for(int i = n; i >= 1; -- i) {
		ans += ask(a[i]-1);
		update(a[i]);
		//if(a[i] == 0) puts("Oh no");
	}
		
	printf("%lld\n", ans);
	return 0;
}