#884. 山路旅程中的双向攀登

    ID: 884 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>动态规划序列最长递增子序列最长双调子序列

山路旅程中的双向攀登

山路旅程中的双向攀登

题目描述

旅行者小岚沿着一条山路前行,第 ii 天她记录下所处位置的海拔高度为整数 hih_i。有一天,她想设计一条特别的“观景旅程”:先一路向上攀登,直到某一天达到最高点,然后再一路向下返回。

在这条旅程中,她会选择若干天 i1<i2<<iki_1<i_2<\dots<i_k,要求存在某个位置 1tk1 \le t \le k,使得:

  • 从第 i1i_1 天到第 iti_t 天,高度严格上升:hi1<hi2<<hith_{i_1} < h_{i_2} < \dots < h_{i_t}
  • 从第 iti_t 天到第 iki_k 天,高度严格下降:hit>hit+1>>hikh_{i_t} > h_{i_{t+1}} > \dots > h_{i_k}

换句话说,她先选出一段严格上升的记录,再选出一段严格下降的记录,且两段在同一天衔接,构成一次“先升后降”的双向攀登旅程。

请你计算:在给定的高度记录中,这样的双向攀登旅程最多可以包含多少天的记录。

输入格式

输入共两行。

  • 第一行包含一个整数 nn,表示记录的天数。
  • 第二行包含 nn 个整数 h1,h2,,hnh_1,h_2,\dots,h_n,依次表示每天的高度记录,整数之间用一个空格分隔。

输出格式

输出一行,一个整数,表示可以选出的最大天数。

输入输出样例 #1

输入 #1

8
1 3 5 4 2 2 1 0

输出 #1

5

样例解释 #1

例如可以选择高度为 1,3,5,2,11,3,5,2,1 的五天记录(下标分别为 1,2,3,5,71,2,3,5,7),先严格上升到高度 55,再严格下降到高度 11,构成一条长度为 55 的“先升后降”旅程。

数据范围

对于所有测试数据,保证:

  • 1n20001 \le n \le 2000
  • 对于所有 1in1 \le i \le n,有 1hi1091 \le h_i \le 10^9