TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P3540
  • 题目
  • P3540积木游戏
    限制 : 时间限制 : 10000 MS   空间限制 : 65536 KB
    问题描述

    小时候我们都喜欢玩积木。这里的积木都是单位边长的正方体块,多个积木可以堆成一个“高木”,“高木”的高度就是叠放的积木块个数。多个“高木”形成一个排列,如果高度满足先严格上升再严格下降,则称这个排列为一座山峰。严格的定义是:假设有N个高木从左到右排列,第i个高度为H[i](i=1,2,...,N)。那么如果存在一个整数k[2,N-1],使得对所有的位置i,下式都成立,则称H是一座山峰。
    H[i]>H[i-1],1<i<=k
    H[i]>H[i+1],k<i<=N
    现在你有一个超级工具,每次操作可以给一段连续的区间各位置都叠放上一块积木,使得高度同时增加1个单位,现在有一个“高木”排列,需要将其改造为一座山峰,只允许使用这种超级工具,最少需要操作几次可以达到这个目标呢?假设积木无限供应。

    输入格式

    输入文件只有一组数据。
    第一行包含一个整数N,为上文提到的初始排列中“高木”的个数。
    第二行包含N个正整数,表示由左到右的N个位置“高木”的初始高度H[i],数字由空格隔开。

    输出格式

    输出包含一个整数,表示所需要的最少的操作次数。

    样例输入

    6
    3 4 3 6 7 8

    样例输出

    2

    提示

    对于30%的数据,满足N<=20,H[i]<=50.
    对于50%的数据,满足N<=100,H[i]<=1000
    对于全部的数据,满足3<=N<=10^5,H[i]<=10^7