Codeforce 1131C Birthday (构造数组)

给了一个数组,构造一个环,使相邻的数的差的最大值最小,本来以为二分可以解决,结果我做不出来。。。。。。。

看了题解,大的往中间放,小的放两边,中间向两边递减

 

#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;
}

 

posted @ 2019-03-08 16:12  TLE自动机  阅读(163)  评论(0编辑  收藏  举报