#include <bits/stdc++.h>
using namespace std;
long long n, i, k, c, h[10000], x[10000][2], y[10000][2], z[10000][2];
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  for (i = 1; i <= n; i++) cin >> h[i];
  y[1][0] = 1e18;
  for (i = 2; i <= n; i++) {
    c = i / 2;
    if (i % 2 == 1) c++;
    for (k = 1; k <= c; k++) {
      if (i % 2 == 0)
        z[k][0] =
            min(y[k][0], y[k][1] + max((long long)0, h[i] - h[i - 1] + 1));
      else if (i / 2 < k)
        z[k][0] = 1e18;
      else
        z[k][0] =
            min(y[k][0], y[k][1] + max((long long)0, h[i] - h[i - 1] + 1));
      if (i == 2)
        z[k][1] = max((long long)0, h[1] - h[2] + 1);
      else
        z[k][1] = min(x[k - 1][0] + max((long long)0, h[i - 1] - h[i] + 1),
                      x[k - 1][1] + max((long long)0,
                                        h[i - 1] - min(h[i], h[i - 2]) + 1));
    }
    c = (i - 1) / 2;
    if ((i - 1) % 2 == 1) c++;
    for (k = 1; k <= c; k++) {
      x[k][0] = y[k][0];
      x[k][1] = y[k][1];
    }
    c = i / 2;
    if (i % 2 == 1) c++;
    for (k = 1; k <= c; k++) {
      y[k][0] = z[k][0];
      y[k][1] = z[k][1];
    }
  }
  c = n / 2;
  if (n % 2 == 1) c++;
  for (k = 1; k <= c; k++) cout << min(z[k][1], z[k][0]) << " ";
  return 0;
}
