记录编号 173793 评测结果 EEEEEEEEEE
题目名称 [尼伯龙根之歌] 精灵魔法 最终得分 0
用户昵称 Gravatar一個人的雨 是否通过 未通过
代码语言 C++ 运行时间 0.999 s
提交时间 2015-07-29 20:56:23 内存使用 85.88 MiB
显示代码纯文本
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cstdlib>
using namespace std;
struct p{
	int a;
	int x;
}P[10000000];
int c[1000000],s[1000000],n;
int ans=0;

bool cmp(const p&a,const p&b){
	return a.x<b.x;
}

int lowbit(int x){
	return (x&-x);
}

int SHIT(int x){
    int sum=0;
    while(x>0){
        sum+=c[x];
		x-=lowbit(x);
    }
    return sum;
}

void update(int i,int x){
    while(i<=n){
        c[i]+=x;
		i+=lowbit(i);
    }
    return;
}

int main()
{
	freopen("alfheim.in","r",stdin);
	freopen("alfheim.out","w",stdout);
	scanf("%d",&n);
	for (int i=1;i<=n;++i)
      scanf("%d",&P[i].x);
	for (int i=1;i<=n;++i)
	  scanf("%d",&P[i].a);
    sort(P+1,P+n+1,cmp);
    for (int i=n;i>=1;--i)
    {
    	update(P[i].a+1,1);
    	ans+=SHIT(P[i].a);
    }
    printf("%d",ans);
    return 0;
}