#CF1407D. 离散离心跳跃

离散离心跳跃

离散离心跳跃

  • 时间限制:2 秒
  • 内存限制:512 MiB

题目描述

有 nn 座依次排列的楼,第 ii 座楼的高度为 hih_i。从第 ii 座楼跳到第 jj 座楼(i<ji<j)是合法的,当且仅当满足下列条件之一:

  • j=i+1j=i+1;
  • 中间所有楼都严格低于两端,即 max⁡(hi+1,…,hj−1)<min⁡(hi,hj)\max(h_{i+1},\ldots,h_{j-1})<\min(h_i,h_j);
  • 中间所有楼都严格高于两端,即 max⁡(hi,hj)<min⁡(hi+1,…,hj−1)\max(h_i,h_j)<\min(h_{i+1},\ldots,h_{j-1})。

求从第 11 座楼到第 nn 座楼所需的最少跳跃次数。

输入格式

第一行一个整数 nn。

第二行 nn 个整数 h1,h2,…,hnh_1,h_2,\ldots,h_n。

输出格式

输出一个整数,表示最少跳跃次数。

样例输入 1

5
1 3 1 4 5

样例输出 1

3

样例输入 2

4
4 2 2 4

样例输出 2

1

样例输入 3

2
1 1

样例输出 3

1

样例输入 4

5
100 1 100 1 100

样例输出 4

2

数据范围

2≤n≤3×1052\le n\le 3\times 10^5,1≤hi≤1091\le h_i\le 10^9。

子任务编号 分值 特殊限制
1 20 n≤80n\le 80
2 40 n≤3000n\le 3000
3 无特殊限制