#3958. 🐾 兔猫摇摆之舞

🐾 兔猫摇摆之舞

🐾 兔猫摇摆之舞

(Rabbit‑Cat Informatics Academy · 加菲老师课堂)

故事背景

上午的算法课上,加菲老师搬来一台巨型音响。音乐一起,小兔和小猫立即扭动起来——可是老师却按下暂停键:“别急!真正的摇摆之舞需要严格的正负节拍交替。 假如两个连续动作的节拍差值严格地在正数、负数之间轮流出现,那么整段舞蹈就合格。今天的编程任务,就是帮我从动作序列中挑出一支最长的摇摆舞!”


题目描述

给定整数数组 $nums$。若其任意相邻元素差值 Δi=numsi+1numsi\Delta_i = nums_{i+1}-nums_i 严格地在正数与负数之间交替,则称该序列为摆动序列

  • 只有一个元素或恰有两个不等元素的序列也视为摆动序列。
  • 子序列可通过删除若干元素(保持相对顺序)得到。

请输出 $nums$ 中能构成的 最长摆动子序列长度


输入格式

n
a1 a2 … an
  • $n$ — 数组长度
  • 第二行 $n$ 个整数 $0\le a_i\le1000$

输出格式

ans
  • ans — 最长摆动子序列长度

样例

6
1 7 4 9 2 5
6

差值序列 $(6,-3,5,-7,3)$ 正负交替,整个数组即为最长摆动子序列,长度 $6$。

10
1 17 5 10 13 15 10 5 16 8
7

取子序列 $[1,17,10,13,10,16,8]$,差值 $(16,-7,3,-3,6,-8)$ 交替出现,长度 $7$。


数据范围

参数 约束
$1\le n\le1000$
$0\le nums_i\le1000$