| 记录编号 | 269096 | 评测结果 | AAAAAAAAAA | 
    
        | 题目名称 | 1144.[尼伯龙根之歌] 精灵魔法 | 最终得分 | 100 | 
    
        | 用户昵称 |  liu_runda | 是否通过 | 通过 | 
    
        | 代码语言 | C++ | 运行时间 | 0.468 s | 
    
        | 提交时间 | 2016-06-13 08:16:38 | 内存使用 | 2.20 MiB | 
    
    
    
    		显示代码纯文本
		
		#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=100005;
int x[maxn],v[maxn],a[maxn],dict[maxn];
bool cmp(const int &a,const int &b){
	return x[a]<x[b];
}
bool cmp2(const int &a,const int &b){
	return v[a]<v[b];
}
int lowbit(int x){
	return x&(-x);
}
int c[maxn];
void add(int x){
	for(;x;x-=lowbit(x))c[x]++;
}
int sum(int x){
	int ans=0;
	for(;x<maxn;x+=lowbit(x))ans+=c[x];
	return ans;
}
int main(){
	freopen("alfheim.in","r",stdin);
	freopen("alfheim.out","w",stdout);
	int n;scanf("%d",&n);
	for(int i=1;i<=n;++i)scanf("%d",x+i),a[i]=i;
	for(int i=1;i<=n;++i)scanf("%d",v+i);
	sort(a+1,a+n+1,cmp2);
	int tot=1;
	for(int i=1;i<=n;++i){
		if(v[a[i]]!=v[a[i-1]])dict[a[i]]=++tot;
		else dict[a[i]]=tot;
	}
	sort(a+1,a+n+1,cmp);
	long long cnt=0;
	for(int i=1;i<=n;++i){
		add(dict[a[i]]);
		cnt+=sum(dict[a[i]]+1);
	}
	printf("%lld",cnt);
	fclose(stdin);fclose(stdout);
	return 0;
}