#1677. CF1407D - Discrete Centrifugal Jumps

CF1407D - Discrete Centrifugal Jumps

题目描述

纽约有 nn 座漂亮的摩天大楼,其中第 ii 座的高度是 hih_i 。今天,一些恶棍放火烧毁了其中的 n1n - 1 座摩天大楼,现在唯一安全的建筑就是第 nn 座摩天大楼了。

如果从第 ii 座摩天大楼跳到 第jj 座摩天大楼,那么它们之间的所有摩天大楼都严格低于或高于这两栋摩天大楼,那么我们就把这种跳转称为 离散。形式上,如果满足 i<ji<j 和以下条件之一,则跳转是离散的:

  • i+1=ji + 1 = j
  • max(hi+1,,hj1)<min(hi,hj)\max(h_{i + 1}, \ldots, h_{j - 1}) <\min(h_i, h_j)
  • max(hi,hj)<min(hi+1,,hj1)\max(h_i, h_j) <\min(h_{i + 1}, \ldots, h_{j - 1}) .

目前,瓦夏正待在第一座摩天大楼上,他想活得更久一点,所以他的目标是以最少的离散跳跃次数到达第 nn 座摩天大楼。帮他计算一下这个数字。

输入格式

第一行包含一个整数 nn ( 2n31052 \le n \le 3 \cdot 10^5 ) -摩天大楼总数。

第二行包含 nn 个整数 h1,h2,,hnh_1, h_2, \ldots, h_n ( 1hi1091 \le h_i \le 10^9 )--摩天大楼的高度。

输出格式

打印单个数字 kk - 最小离散跳跃量。我们可以证明答案总是存在的。

5
1 3 1 4 5
3
4
4 2 2 4
1
2
1 1
1
5
100 1 100 1 100
2

提示

在第一个测试案例中,瓦夏可以通过以下方式跳转: 12451 \rightarrow 2 \rightarrow 4 \rightarrow 5 .

在第二和第三个测试案例中,我们可以一跳到达最后一幢摩天大楼。

第四个测试案例中的跳跃顺序: 1351 \rightarrow 3 \rightarrow 5 .