C-小红的数组构造_牛客周赛 Round 22 (nowcoder.com)
#include <iostream>
#include <queue>
#include <string>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <cmath>
using namespace std;
#define ll unsigned long long
#define INF 0x7fffffff
typedef pair<int, int> PII;
ll n, k, x;
int main() {
cin >> n >> k >> x;
if (n > k) {
cout << -1;
return 0;
}
ll min_ = (1 + n) * n / 2;
ll max_ = (2 * k - n + 1) * n / 2;
if (min_ > x || max_ < x) {
cout << -1;
return 0;
}
for (ll i = 1; i <= k;) {
if (x - (2 * i + n - 1) * n / 2 >= n) {
i += (x - (2 * i + n - 1) * n / 2) / n;
continue;
}
else {
cout << i << " ";
x -= i;
i++, n--;
}
if (x == 0) break;
}
return 0;
}