#include using namespace std; vector pyramid(int p) { vector t; for (int i = 1; i <= p; i++) t.push_back(i); for (int i = p - 1; i >= 1; i--) t.push_back(i); return t; } int main() { int n; cin >> n; int tot = 0; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; tot += a[i]; } int ans = 1000000000; for (int j = 2; j * j <= tot; j++) { vector p = pyramid(j); int excess = 0; int shor = 0; for (int i = 0; i < max((int)p.size(), (int)a.size()); i++) { if (i < a.size() && i < p.size()) { if (a[i] > p[i]) { excess += a[i] - p[i]; } else if (a[i] < p[i]) { shor += p[i] - a[i]; } } else if (i >= a.size()) { shor += p[i]; } else if (i >= p.size()) { excess += a[i]; } } ans = min(ans, max(excess, shor)); } cout << ans << endl; return 0; }