题面在这里!

 

    可以看成点集{a[i]-i}和b之间距离的和,于是找到中位数就可以直接算了2333.

 

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=200005;

int a[N],n,num;
ll ans=0;

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",a+i),a[i]-=i;
	sort(a+1,a+n+1),num=a[(n+1)>>1];
	for(int i=1;i<=n;i++) ans+=(ll)abs(num-a[i]);
	cout<<ans<<endl;
	return 0;
}

 

相关文章:

  • 2022-03-06
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
猜你喜欢
  • 2021-06-30
  • 2022-01-13
  • 2021-10-12
  • 2021-07-13
  • 2021-06-04
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案