//https://ncode.syosetu.com/n4830bu/266/ #include using namespace std; int main() { int N; cin >> N; vector S(N + 1); for (auto&& s : S) { cin >> s; } vector maine(N + 1, vector(11, 100000)); maine[0][0] = 1; for (int i = 0; i <= N; i++) { for (int j = 0; j <= S[i]; j++) { if (i > 0) maine[i][j] = maine[i - 1][j] + 1; for (int k = 0; k < j; k++) { if (j - k - 1 >= 0) maine[i][j] = min(maine[i][j], maine[i][k] + maine[i][j - k - 1]); } } } for (int i = 0; i <= S[N]; i++) { cout << maine[N][i] << " \n"[i == S[N]]; } }