给定 $1 \leq i < j \leq n$,
要求 $j - a_j \neq i - a_i$,即 $j - i \neq a_j - a_i$,
因为 $j - i > 0$,所以只要保证 $a_j - a_i \leq 0$ 即可。
所以将原数组从大到小排序后输出即可。
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100;
int T;
int n;
int a[N];
int main() {
cin >> T;
while (T--) {
cin >> n;
for (int i = 0; i < n; ++i) cin >> a[i];
sort(a, a + n, greater<int>());
for (int i = 0; i < n; ++i) cout << a[i] << " ";
cout << endl;
}
return 0;
}
笔误了,是数组从大到小排,输出。当然可以从小到大排,逆序输出。 不是直接逆序输出原数组。
haha,你说的对,是我表达错了