-
首先,我们需要找到一个满足条件的数组,其中相邻元素的差值是相等的。根据题目描述,我们可以知道这样的数组一定存在。
-
接下来,我们需要找到满足条件的数组中最小可能的最大元素。为了达到这个目标,我们可以考虑如下方法:
- 设数组中最小的元素为a,差值为d,那么数组中的元素依次为:a, a+d, a+2d, ..., a+(n-1)d。
- 根据题目给定的条件,我们知道y - x = (n-1)d,即差值d为两个给定元素之间的差值除以n-1。
- 所以我们可以通过迭代的方式从大到小尝试不同的d值,直到找到满足条件的数组。
-
一旦找到满足条件的数组,我们可以将其输出作为答案。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
int t;
cin >> t;
while (t--) {
ll n, x, y;
cin >> n >> x >> y;
ll mint = 1e9, pos = 0;
for (int i = 1; i != y - x + 1; i++) {
if (((y - x) % i == 0) && 1 + (y - x) / i <= n) {
ll mt = y - (n - 1) * i;
while (mt <= 0)mt += i;
if (mt + (n - 1) * i <= mint)mint = mt + (n - 1) * i, pos = i;
}
}
for (ll i = 0; i != n; i++)cout << mint + (i - n + 1) * pos << " \n"[i == n - 1];
}
return 0;
}