特判n=1。以下均为n\ge 2

首先考虑小红的最优策略:贪心选择最左侧血量为正的怪物,然后攻击其及其右侧的怪物。考虑k合法的范围,最小的分配方式是让所有的怪物都可以被双击消灭,最大的分配方式是将血量全部分配给最右侧的一个怪物,计算可得\left\lceil\frac a2\right\rceil\le k\le a-\left\lfloor\frac n2\right\rfloor

当满足条件时,可以将血量全部分配给最右侧的两个怪物,具体分配方式见代码。

#include <iostream>
using namespace std;

int n;
int a;
int k;

void Solve() {
    cin >> n >> a >> k;
    if (n == 1) {
        if (a == k) {
            cout << a;
            return;
        }
        cout << "-1";
        return;
    }
    int mini = (a + 1) / 2;
    int maxi = a - n / 2;
    if (k > maxi || k < mini) {
        cout << "-1";
        return;
    }
    int lf = 1;
    int rt = 1 - (n & 1);
    k -= n / 2;
    a -= n / 2 * 2;
    lf += a - k;
    rt += k;
    for (int i = 2; i < n; i++) {
        cout << "1 ";
    }
    cout << lf << ' ' << rt;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    Solve();
    return 0;
}