| 记录编号 | 
        269007 | 
        评测结果 | 
        AAAAAAAAAA | 
    
    
        | 题目名称 | 
        1144.[尼伯龙根之歌] 精灵魔法 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         NewBee | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.311 s  | 
    
    
        | 提交时间 | 
        2016-06-13 06:14:49 | 
        内存使用 | 
        3.34 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<cstdio>
#include<algorithm>
#define Cu fclose(stdin);fclose(stdout);return 0;
#define Begin freopen("alfheim.in","r",stdin);freopen("alfheim.out","w",stdout);chul();Cu
using namespace std;
//designed by New_Beeؼ 
const int maxn=200010;
struct op{
	int pa,pac,plac;
	op(){
		pa=pac=plac;
	}
};
op g[maxn];
int a[maxn];
int n;
int lowbit(int);
bool comp1(op,op);
bool comp2(op,op);
void adds(int);
long long sum(int);
void chul();
int main(){
	Begin
}
void chul(){
	long long ans=0;scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&g[i].plac);
	}
	for(int i=1;i<=n;i++){
		scanf("%d",&g[i].pa);
	}
	sort(g+1,g+1+n,comp1);
	for(int i=1;i<=n;i++){
		if(g[i].pa==g[i-1].pa){
			g[i].pac=g[i-1].pac;
		}
		else g[i].pac=i;
	}
	sort(g+1,g+1+n,comp2);
	for(int i=1;i<=n;i++){
		ans+=sum(g[i].pac-1);
		adds(g[i].pac);
	}
	printf("%lld",ans);
}
bool comp1(op a,op b){
	return a.pa<b.pa;
}
bool comp2(op a,op b){
	return a.plac>b.plac;
}
long long sum(int x){
	int tot=0;
	while(x>0){
		tot+=a[x];
		x-=lowbit(x);
	}
	return (long long)tot;
}
void adds(int x){
	while(x<=n){
		a[x]++;
		x+=lowbit(x);
	}
}
int lowbit(int x){
	return x&(-x);
}