#131. 消除格子

消除格子

题目描述

你现在处于一个棋盘当中,长度为n,n,高度无限,棋盘上的每一列 有蓝色格子 和 白色格子组成,例如下图所示,我们现在要求将所有的格子都染成蓝色,每次染色你有两种方案:

  1. 选择指定区间的列,将这段区间内的一行染成蓝色,注意,已经是蓝色的格子,不能重复再染;

  2. 选择某一列,染成蓝色;

问你最少需要染色多少次?

输入格式

输入共两行;

第一行一个整数nn,表示总共有多少列;1n1041 \le n \le 10^4;

22n n个数字,表示棋盘当中每一列下方的白色的格子的数目;

ii个数字aia_i表示第ii列的白色格子的数目,0ai1040 \le a_i \le 10^4

输出格式

一行一个数字,表示最少染色次数;

样例

5
2 1 2 2 1
3

数据范围与限制

  • 对于30%30\%,n20,ai10000n \le 20,a_i \le 10000
  • 对于另外20%20\%的数据,n10000,ai<ai+1n \le 10000,a_i \lt a_{i + 1};
  • 对于另外20%20\%的数据,n10000n \le 10000,i[1,n],ai=ai+1\forall i \in [1,n],a_i = a_{i + 1};
  • 对于100%100 \%的数据,n104,0ai10000n \le 10^4,0 \le a_i \le 10000

提示

样例1解释

如上图所示,总共有55列, 第一列有两个白色格子,第22列有11个,第33列有22个,第4422个,第5511个;

那么总共需要染色的次数 最少为33次;

  • 11次,将第11列到第55列的第一行全部染成蓝色,此时数组的状态为[1,0,1,1,0][1,0,1,1,0];

  • 22次将第11列染成蓝色,此时数组的状态为[0,0,1,1,0][0,0,1,1,0];

  • 33次将第33列到第44列总共染成蓝色;

此时数组的状态为[0,0,0,0,0][0,0,0,0,0],每一列都没有白色格子,所有的都变成了蓝色,染色完毕;