#include using namespace std; int n; int a[100001]; int b[100001]; long long int res = 0; set S,S2; int main() { cin.tie(0); ios::sync_with_stdio(false); cin >> n; for(int i=1;i<=n;i++) cin >> a[i]; for(int i=1;i<=n;i++) { b[i] = a[i]; if(a[i] >= 1) S.insert(i); } S2 = S; for(int i=1;i<=n;i++) { if(a[i]==0) { auto it = S.lower_bound(i); int Min = 1e9; int idx = -1; if(it==S.end()) { it--; int d = abs(i - *it); if(Min > d) { Min = d; idx = *it; } } else { int d = abs(i - *it); if(Min > d) { Min = d; idx = *it; } } a[idx]-=1; a[i] += 1; res += Min; if(a[idx]==0) S.erase(idx); } } S = S2; memcpy(a,b,sizeof(b)); long long int sum = 0; for(int i=n;i>=1;i--) { if(a[i]==0) { auto it = S.lower_bound(i); int Min = 1e9; int idx = -1; if(it==S.begin()) { int d = abs(i - *it); if(Min > d) { Min = d; idx = *it; } } else { it--; int d = abs(i - *it); if(Min > d) { Min = d; idx = *it; } } a[idx]-=1; a[i] += 1; sum += Min; if(a[idx]==0) S.erase(idx); } } res = min(res,sum); cout << res << '\n'; return 0; }