#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+10;
ll dp[2][27][2];
ll a[N];
vector<int> pos[N];
int main(){
int n; cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=i-4;j<=i+4;j++){
if(j<1 || j>n) continue;
for(int x=-1;x<=1;x++) pos[i].push_back(a[j]+x);
}
sort(pos[i].begin(),pos[i].end());
pos[i].erase(unique(pos[i].begin(),pos[i].end()),pos[i].end());
}
ll ans=LLONG_MAX;
if(n==1){
cout<<0;
return 0;
}
for(int i=0;i<pos[1].size();i++){
dp[1][i][0]=dp[1][i][1]=abs(a[1]-pos[1][i]);
}
for(int i=2;i<=n;i++){
int now=i&1;
int pre=(i+1)&1;
for(int j=0;j<pos[i].size();j++) dp[now][j][0]=dp[now][j][1]=1e18;
int p=0;
ll mn=1e18;
for(int j=0;j<pos[i].size();j++){
while(p<pos[i-1].size() && pos[i-1][p]<pos[i][j]){
mn=min(mn,dp[pre][p][0]);
p++;
}
ll dt=abs(pos[i][j]-a[i]);
if(p<pos[i-1].size() && pos[i-1][p]==pos[i][j]){
dp[now][j][1]=min(dp[now][j][1],dp[pre][p][1]+dt);
dp[now][j][0]=min(dp[now][j][0],dp[pre][p][0]+dt);
}
dp[now][j][1]=min(dp[now][j][1],mn+dt);
}
mn=1e18;
p=(int)(pos[i-1].size())-1;
for(int j=(int)pos[i].size()-1;j>=0;j--){
while(p>=0 && pos[i-1][p]>pos[i][j]){
mn=min(mn,dp[pre][p][1]);
p--;
}
ll dt=abs(pos[i][j]-a[i]);
dp[now][j][0]=min(dp[now][j][0],mn+dt);
}
if(i==n){
for(int j=0;j<pos[i].size();j++){
ans=min({ans,dp[now][j][0],dp[now][j][1]});
}
}
}
cout<<ans;
}