#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5e3 + 2;
const int INF = INT_MAX / 2;
const int MOD = 1e9 + 7;
int dp[2][MAXN][MAXN / 2];
int a[MAXN], n;
int go(int i, int rem, int dec) {
  if (i >= n) {
    if (rem == 0) return 0;
    return INF;
  }
  int &r = dp[dec][i][rem];
  if (r == -1) {
    r = INF;
    int lh = dec ? ((a[i - 2] - 1) < (a[i - 1]) ? (a[i - 2] - 1) : (a[i - 1]))
                 : (i == 0 ? -INF : a[i - 1]);
    int rh = i == n - 1 ? -INF : a[i + 1];
    r = ((r) < (go(i + 2, rem - 1, 1) +
                ((0) > (lh - a[i] + 1) ? (0) : (lh - a[i] + 1)) +
                ((0) > (rh - a[i] + 1) ? (0) : (rh - a[i] + 1)))
             ? (r)
             : (go(i + 2, rem - 1, 1) +
                ((0) > (lh - a[i] + 1) ? (0) : (lh - a[i] + 1)) +
                ((0) > (rh - a[i] + 1) ? (0) : (rh - a[i] + 1))));
    r = ((r) < (go(i + 1, rem, 0)) ? (r) : (go(i + 1, rem, 0)));
  }
  return r;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  while (cin >> n) {
    memset(dp, -1, sizeof dp);
    for (int i = 0; i < n; i++) {
      cin >> a[i];
    }
    int lim = (n + 1) / 2;
    for (int i = 1; i <= lim; i++) {
      cout << go(0, i, 0) << " ";
    }
    cout << '\n';
  }
  return 0;
}
