1440: 差异和
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:3
解决:3
题目描述
小数学迷戴维最近在研究一个问题:对于一个由n个整数组成的序列:a1, a2, ..., an,把相邻的两个数之间的差:ax –ax+1 (1≤x<n)叫做差异值,把整个数列的所有差异值加在一起:(a1- a2) + (a2- a3) + ... + ( an -1- an),叫做差异和,于是不同的排序方法可以得到不同的差异和。
戴维的任务就是要找出一种排序方案,使得这个数列的差异和的值最大。但是他很快就发现,得到最大的差异和可以有很多种排序方法,于是戴维决定找出其中“序列最小”的方案(关于序列大小,,越靠前的数越小的序列越小。
例如:对于1 2 3 4四个数组成的序列,序列1 3 2 4 比序列 1 3 4 2小)。
现在,请你用编程的办法帮帮戴维,找出他要的这个排序方案吧!
输入(differencerow.in)
输入的第一行包含整数n (2 ≤ n ≤ 500000)。
第二行包含n空间分隔的整数a1, a2, ..., an (|ai| ≤ 1000).
输出(differencerow.out)
(a1- a2) + (a2- a3) + ... + ( an -1- an)= a1-an
按题目要求输出序列 a1, a2, ... , ap
样例测试
输入
5
100 -100 50 0 -50 输出 100 -50 0 50 -100 数据范围 5%的数据:n<=10 30%的数据:n<=100 60%的数据:n<=5000 90%的数据:n<=100000 100%的数据:n<=500000
100 -100 50 0 -50 输出 100 -50 0 50 -100 数据范围 5%的数据:n<=10 30%的数据:n<=100 60%的数据:n<=5000 90%的数据:n<=100000 100%的数据:n<=500000
样例输入 复制
5
100 -100 50 0 -50
样例输出 复制
100 -50 0 50 -100