例. 营业额统计(湖南选拔赛)
[问题描述]
公司的账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况:
该天的最小波动值 = min{ | 改天以前某天的营业额 - 当天的营业额 | }
当最小波动值越大时,就说明营业情况越不稳定。
而分析整个公司的从成立到现在营业情况是否稳定,只需要把每一天的最小波动值加起来就可以了。你的任务就是编写一个程序来计算这一个值。第一天的最小波动值为第一天的营业额。
输入文件第一行为正整数 n (n<=1000000),表示该公司从成立一直到现在的天数,接下来的 n 行每行有一个正整数,表示第i天公司的营业额。
输出文件仅有一个正整数,即。结果小于。
输入输出样例
6 5 1 2 5 4 6 |
12 |
[算法分析]
本题题意明了,关键是读入一个数,找到前面已经输入的与此数相差最小的数。
题目的标准算法是通过平衡树来解决的,平衡树,就是一种能自己进行适应,使树的深度达到尽量小的一种检索树,详细的情况可以参考相关书籍。