排队问题
解题思路
排序累加先后位置差。
code
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n;
struct abc{
int x,id;
}a[10010];
int _abs(int x)
{
return x>0?x:-x;
}
int cmp(abc x,abc y)
{
return x.x<y.x;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
scanf("%d",&a[i].x),a[i].id=i;
sort(a+1,a+n+1,cmp);
int ans=0;
for(int i=1;i<=n;i++)
ans+=_abs(i-a[i].id);
cout<<ans<<endl;
}