AT_bcu30_2019_b Interval Addition

题目描述

ミクシィ公司的青木先生有一个由 $N$ 个元素组成的数列 $A$,初始时数列的所有元素均为 $0$。 青木先生可以重复进行以下操作 $0$ 次或多次,使得对于所有 $1 \leq i \leq N$,数列第 $i$ 个元素变为 $a_i$。 - 选择满足 $1 \leq k \leq N$ 和 $1 \leq l \leq N+1-k$ 的正整数 $k, l$。任意选择一个长度为 $k$ 的非负整数序列 $0 \leq B_1 \leq B_2 \leq \cdots \leq B_k$,然后对于 $1 \leq i \leq k$,令 $A_{l+i-1} := A_{l+i-1} + B_i$。 每次操作可以选择不同的 $k, l, B$。请你求出青木先生为了得到目标数列,所需的最少操作次数。

输入格式

输入以如下格式从标准输入读入。 > $N$ $a_1$ $a_2$ $\cdots$ $a_N$

输出格式

输出青木先生为了得到目标数列所需的最小操作次数。

说明/提示

### 限制条件 - $1 \leq N \leq 2 \times 10^5$ - $0 \leq a_i \leq 10^9$ - 输入均为整数 ### 样例解释 1 如果选择 $k=2, l=1, B=\{3, 4\}$,青木先生可以通过 $1$ 次操作得到目标数列。 ### 样例解释 2 第一次操作选择 $k=2, l=1, B=\{3, 3\}$,此时 $A$ 变为 $\{3, 3\}$。第二次操作选择 $k=1, l=1, B=\{1\}$,此时 $A$ 变为 $\{4, 3\}$。因此青木先生可以通过 $2$ 次操作得到目标数列,且无法通过 $1$ 次或更少的操作得到目标数列,所以输出 $2$。 由 ChatGPT 4.1 翻译