3697: 旅行-【2014暑期训练】T7Day1T1

Memory Limit:256 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:0 Solved:1

Description

1. 旅行

【问题描述】

一段路可以用一个长度为N的序列A[I]来表示,A[I]表示了第I这段路的高度。第1段路开始走,走到第N段,从第I段走到第I+1段路需要消耗|A[I+1]-A[I]|点体力。

现在可以将一段路高度变高或者变低,改变一段路H的高度就需要消耗H的体力。即若把第I段路高度从A[I]变成了K,那么需要消耗|A[I]-K|点体力。

如何调整路段高度,使得总体力消耗最小。

 

【文件输入】

第1行为一个正整数N,表示了这条路线的长度。

第2行有N个正整数,相邻两个正整数用空格隔开,描述了A[I]这个序列。

【文件输出】

一个非负整数,为最小的总体力消耗。

【输入样例1】

3

3 4 1

【输出样例1】

3

【输入样例2】

10

1 2 3 4 3 2 1 2 3 4

【输出样例3】

7

 

【样例1说明】

将第2段路的高度调整为3,第3段路的高度调整为2,调整体力消耗为2。

路线序列变为3 3 2,穿越这条路线消耗体力为1。

所以总体力消耗为3。

【数据规模】

对于10%的数据,有N≤10;

对于30%的数据,有A[I]≤1000;

对于40%的数据,有N≤1000;

对于100%的数据,有N≤100000,A[I]≤10000000。

HINT

从左到右扫过来,若某段比两边都低,则把他调整为两边较低的高度; 

若某段比两边都高,则把他调整为两边较高的高度.