本傻逼的代码求优化
#include<bits/stdc++.h>
using namespace std;
long long a[100000];//十年OI一场空,不开longlong见祖宗 10e15 吓死个人
int main(){
long long n,ans=0;
scanf("%lld",&n);
int z,f;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
//要想完成最后一步需变成差值
// 两种 1 2 3 4 5
// -1 -2 -3 -4 -5
// 开头特判一次对齐
int standard=1;
if(a[1]<standard&&a[1]!=0){//跟标准比大小
int cha = standard-a[1];
ans++;
int o=1;
for(int i=2;i<=n;i++){
//cout<<"+ cha "<<cha<<endl;
a[i]+=(cha+o);
//cout<<
o++;
}
}else if(a[1]>standard&&a[1]!=0){
int cha = a[1]-standard;
ans++;
int o=1;
for(int i=2;i<=n;i++){
a[i]-=(cha+o);
o++;
}
}
a[1]=1;
standard=2;
for(int i=2;i<=n;i++){
int cz=0;//差值
/*for(int j=1;j<=n;j++){
cout<<a[j]<<" ";
}*/
if(a[i]<standard&&a[i]!=0){//跟标准比大小
int cha = standard-a[i];
ans+=cha;
a[i]=standard;
//cout<<"+ cha "<<cha<<endl;
int o=2;
for(int j=i+1;j<=n;j++){
a[j]+=o*cha;
o++;
}
}else if(a[i]>standard&&a[i]!=0){
int cha = a[i]-standard;
//cout<<"- cha "<<cha<<endl;
ans+=cha;
a[i]=standard;
int o=2;
for(int j=i+1;j<=n;j++){
a[j]-=o*cha;
o++;
// cout<<
}
}
cout<<ans<<endl;
standard++;
//cout<<endl;
}
cout<<ans+1<<endl;
return 0;
}