给你一个序列,让你求(x1 - x2) + (x2 - x3) + ... + (xn - 1 - xn).值最大的一个序列,我们化简一下公式就会发现(x1 - x2) + (x2 - x3) + ... + (xn - 1 - xn). = x1 - xn, 也就是说只有第一个和最后一个是确定的,其他的随便了! 也不是了, 还要让你按字典序最小的排列,也就是说其他的是按飞递减序排列的,简单的一次排序就OK了。
//2013-09-21-09.07
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[120];
bool cmp(int x, int y)
{
return x < y;
}
int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
for (int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
}
sort(a+1, a+n+1, cmp);
swap(a[1], a[n]);
for (int i = 1; i < n; i++)
printf("%d ", a[i]);
printf("%d\n", a[n]);
}
return 0;
}