#include <bits/stdc++.h>
using namespace std;
inline long long gcd(long long a, long long b) {
  a = ((a) < 0 ? -(a) : (a));
  b = ((b) < 0 ? -(b) : (b));
  while (b) {
    a = a % b;
    swap(a, b);
  }
  return a;
}
const long long inf = 2147383647;
const long long mod = 1000000007;
const double pi = 2 * acos(0.0);
const double eps = 1e-9;
long long dp[5005][2602][2], high;
int n, ar[5005];
long long f(int id, int rem, int flag) {
  long long &res = dp[id][rem][flag];
  if (res != -1) return res;
  if (!rem) return res = 0;
  if (id > n) return res = high;
  res = f(id + 1, rem, 0);
  long long tmp = f(id + 2, rem - 1, 1);
  int cheight;
  if (id < n) {
    tmp += max(ar[id + 1] - ar[id] + 1, 0);
  }
  if (id > 1) {
    cheight = ar[id - 1];
    if (flag) cheight = min(cheight, ar[id - 2] - 1);
    tmp += max(cheight - ar[id] + 1, 0);
  }
  res = min(res, tmp);
  res = min(res, high);
  return res;
}
int main() {
  high = 1e14;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &ar[i]);
  }
  memset(dp, -1, sizeof(dp));
  int k = (n + 1) / 2;
  for (int i = 1; i <= k; i++) {
    printf("%lld ", f(1, i, 0));
  }
  puts("");
  return 0;
}
