给了一个数组,构造一个环,使相邻的数的差的最大值最小,本来以为二分可以解决,结果我做不出来。。。。。。。
看了题解,大的往中间放,小的放两边,中间向两边递减
#include<bits/stdc++.h> using namespace std; int n; int a[105],ans[105]; int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + n + 1); int l = 1, r = n; for (int i = 1; i <= n; i++) { if (i & 1) ans[l++] = a[i]; else ans[r--] = a[i]; } for (int i = 1; i <= n; i++) cout << ans[i] << " \n"[i == n]; return 0; }