1440: 差异和

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:3 解决:3

题目描述

小数学迷戴维最近在研究一个问题:对于一个由n个整数组成的序列:a1,a2,...,an,把相邻的两个数之间的差:ax –ax+1 (1xn)叫做差异值,把整个数列的所有差异值加在一起:(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

样例输入 复制

5
100 -100 50 0 -50

样例输出 复制

100 -50 0 50 -100 

来源/分类