AT_past19_l 最長のジグザグ
题目描述
长度为 $k$ 的序列 $A=(A_1,\ldots,A_k)$ 被称为锯齿序列,当且仅当:
- $A_1 < A_2 > A_3 < A_4 > \ldots$ ,或者
- $A_1 > A_2 < A_3 > A_4 < \ldots$。
更形式化地说,若且仅若序列满足以下条件时,被称为锯齿序列:
- $A_i \neq A_{i+1}\ (1 \leq i \leq k-1)$,并且
- $(A_{i+1} - A_i)(A_i - A_{i-1}) < 0\ (2 \leq i \leq k-1)$。
特别地,长度为 $1$ 的序列始终为锯齿序列。
给定一个长度为 $N$ 的序列 $B=(B_1,\ldots,B_N)$,请你求出 $B$ 的最长锯齿子序列的长度。
什么是子序列?**子序列**是指从原序列中删除零个或多个元素,余下元素按原顺序依次排列所得到的序列。例如,$(10,30)$ 是 $(10,20,30)$ 的子序列,但 $(20,10)$ 不是 $(10,20,30)$ 的子序列。
输入格式
输入从标准输入读入,格式如下:
> $N\ B_1\ \ldots\ B_N$
输出格式
一行输出一个整数,表示最长锯齿子序列的长度。
说明/提示
### 样例解释 1
序列 $B$ 的子序列 $(5,2,4,3)$ 是一个长度为 $4$ 的锯齿序列。
### 数据范围
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq B_i \leq 10^9$
- 所有输入值均为整数。
由 ChatGPT 5 翻译