#include <bits/stdc++.h>
int N;
int H[5005];
int dp[5005][5005 / 2], f[5005][5005 / 2];
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);
  std::cout.tie(0);
  memset(dp, 0, sizeof dp);
  std::cin >> N;
  for (int i = 0; i < N; i++) std::cin >> H[i];
  for (int k = 1; k <= (N + 1) / 2; k++) {
    for (int i = 2 * k - 2; i < N; i++) {
      if (k > 1) {
        dp[i][k] = dp[i - 2][k - 1] +
                   std::max(0, H[i - 1] - std::min(H[i - 2], H[i]) + 1);
        if (i >= 3 && i >= 2 * k - 1)
          dp[i][k] = std::min(
              dp[i][k], f[i - 3][k - 1] + std::max(0, H[i - 1] - H[i] + 1));
      } else if (i > 0)
        dp[i][k] = std::max(0, H[i - 1] - H[i] + 1);
      int tmp = 0;
      if (i < N - 1) tmp = std::max(0, H[i + 1] - H[i] + 1);
      f[i][k] = dp[i][k] + tmp;
      if (i > 2 * k - 2) f[i][k] = std::min(f[i][k], f[i - 1][k]);
    }
    std::cout << f[N - 1][k] << " ";
  }
  std::cout << "\n";
  return 0;
}
