分析
这道题真的好水呀QwQ,想必大家都知道对于式子|x-2|+|x-3|x取什么值可以使式子结果最小,这道题也是这个原理,只需要将要额外减的1、2、3……提前减掉就行了。
代码
#include<bits/stdc++.h>
using namespace std;
long long a[200010];
int main(){
long long n,m,i,ans=0;
cin>>n;
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);
a[i]-=i;
}
sort(a+1,a+n+1);
m=a[(n-1)/2+1];
for(i=1;i<=n;i++)
ans+=abs(m-a[i]);
cout<<ans<<endl;
return 0;
}