CF BUDDY
← Problems·

1407D · Discrete Centrifugal Jumps

2200 · data structures, dp, graphs

Problem: There are nn beautiful skyscrapers in New York, the height of the ii-th one is hih_i. Today some villains have set on fire first n1n - 1 of them, and now the only safety building is nn-th skyscraper.

Let's call a jump from ii-th skyscraper to jj-th (i<ji < j) discrete, if all skyscrapers between are strictly lower or higher than both of them. Formally, jump is discrete, if i<ji < j and one of the following conditions satisfied:

  • 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}).

At the moment, Vasya is staying on the first skyscraper and wants to live a little longer, so his goal is to reach nn-th skyscraper with minimal count of discrete jumps. Help him with calcualting this number.

Input Format: The first line contains a single integer nn (2n31052 \le n \le 3 \cdot 10^5) — total amount of skyscrapers.

The second line contains nn integers h1,h2,,hnh_1, h_2, \ldots, h_n (1hi1091 \le h_i \le 10^9) — heights of skyscrapers.

Output Format: Print single number kk — minimal amount of discrete jumps. We can show that an answer always exists.

Note: In the first testcase, Vasya can jump in the following way: 12451 \rightarrow 2 \rightarrow 4 \rightarrow 5.

In the second and third testcases, we can reach last skyscraper in one jump.

Sequence of jumps in the fourth testcase: 1351 \rightarrow 3 \rightarrow 5.

Sample Cases

Case 1

Input

5
1 3 1 4 5

Output

3

Case 2

Input

4
4 2 2 4

Output

1

Case 3

Input

2
1 1

Output

1

Case 4

Input

5
100 1 100 1 100

Output

2

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback