特判。以下均为
。
首先考虑小红的最优策略:贪心选择最左侧血量为正的怪物,然后攻击其及其右侧的怪物。考虑合法的范围,最小的分配方式是让所有的怪物都可以被双击消灭,最大的分配方式是将血量全部分配给最右侧的一个怪物,计算可得
。
当满足条件时,可以将血量全部分配给最右侧的两个怪物,具体分配方式见代码。
#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;
}

京公网安备 11010502036488号