求出每一位,移到正确位置,所需的代价和。由于是交换,代价和除以2。
要用long long
#include<bits/stdc++.h>
using namespace std;
const int MAXN=200200;
long long pos[MAXN];
int main()
{
long long n,i,ans,x;
while(~scanf("%lld",&n))
{
ans=0;
for(i=1;i<=n;i++)
{
scanf("%lld",&x);
pos[x]=i;
}
for(i=1;i<=n;i++)
{
scanf("%lld",&x);
ans+=abs(i-pos[x]);
}
printf("%lld\n",ans>>1);
}
}