#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5010;
int dp[MAXN][MAXN];
int best[MAXN];
int arr[MAXN];
int val(int a, int b, int c) {
  return max(0, a - (b - 1)) + max(0, c - (b - 1));
}
int main() {
  ios_base::sync_with_stdio(false);
  int n;
  cin >> n;
  for (int i = (0); i < (n); i++) cin >> arr[i];
  for (int i = (0); i < (n); i++) {
    for (int j = (1); j < (n); j++) dp[i][j] = 1e9;
    best[i] = 1e9;
  }
  best[0] = 0;
  dp[0][1] = val(0, arr[0], arr[1]);
  dp[1][1] = val(arr[0], arr[1], arr[2]);
  for (int i = (2); i < (n); i++) {
    dp[i][1] = val(arr[i - 1], arr[i], arr[i + 1]);
    for (int j = (2); j < (n); j++) {
      dp[i][j] = min(best[j - 1] + val(arr[i - 1], arr[i], arr[i + 1]),
                     dp[i - 2][j - 1] + val(min(arr[i - 1], arr[i - 2] - 1),
                                            arr[i], arr[i + 1]));
    }
    for (int j = (0); j < (n); j++) best[j] = min(best[j], dp[i - 2][j]);
  }
  for (int i = (n); i < (n + 2); i++) {
    for (int j = (0); j < (n); j++) best[j] = min(best[j], dp[i - 2][j]);
  }
  for (int i = (1); i < ((n + 3) / 2); i++) cout << best[i] << " ";
  cout << "\n";
  return 0;
}
