图片说明
思路:可以证明n=X+m(X-1)+1 (m>=0),如果除去a[1].那么就是X+m(X-1)个数。
因为每X个X^t的和=X^(t+1),然后再从m(X-1)个中拿出X-1个数和X^(t+1)合成X^(t+2)
一直到合成只有一个数X^(t+m+1)。t可以任意取。

#include <bits/stdc++.h>
#define LL long long
using namespace std;

vector<int> v;
int main(){
    int n, x; scanf("%d%d", &n, &x);
    int m=(n-1-x)/(x-1);
    for(int i=1; i<=x; i++){
        v.push_back(0);
    }
    for(int i=1; i<=m; i++){
        for(int j=1; j<=(x-1); j++){
            v.push_back(i);
        }
    }
    printf("%d ", m+1);
    for(auto x: v){
        printf("%d ", x);
    }
    printf("\n");

    return 0;
}