#P14964. [2026年重庆省队集训]波浪

    ID: 14180 传统题 2000ms 512MiB 尝试: 1 已通过: 1 难度: 6 上传者: 标签>CF2100动态规划树状数组数据结构计数DP

[2026年重庆省队集训]波浪

时间限制:2s

空间限制:512MB

题目描述

有一个长度为 nn 的序列 aa,你需要在里面选出一个波浪形子序列。

所谓“波浪形子序列”的定义是:设该子序列为 ai1,ai2,,aika_{i_1},a_{i_2},\cdots,a_{i_k},其中 1i1<i2<<ikn1\le i_1<i_2<\cdots<i_k\le n,则:

  • 不存在 1jk11\le j\le k-1,使得 aij=aij+1a_{i_j}=a_{i_{j+1}}
  • 不存在 1jk21\le j\le k-2,使得 aij<aij+1<aij+2a_{i_j}<a_{i_{j+1}}<a_{i_{j+2}}
  • 不存在 1jk21\le j\le k-2,使得 aij>aij+1>aij+2a_{i_j}>a_{i_{j+1}}>a_{i_{j+2}}

对于一个波浪形子序列,定义其权值为这样的 xx 的个数:

  • 存在 1jk11\le j\le k-1,使得 ij<x<ij+1i_j<x<i_{j+1}
  • 对于第一条所述的 jjaij<x<aij+1a_{i_j}<x<a_{i_{j+1}}aij>x>aij+1a_{i_j}>x>a_{i_{j+1}}

求所有波浪形子序列的权值之和。由于答案很大,请对 998244353998244353 取模。

输入格式

第一行包含一个正整数 nn

第二行包含 nn 个正整数 a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

输出一行,包含一个整数,表示答案对 998244353998244353 取模后的结果。

样例输入

5
4 2 3 1 5

样例输出

6

数据范围

对于所有数据,保证 1n1061\le n\le 10^61ai1091\le a_i\le 10^9

测试点编号 nn\le 特殊性质
121\sim 2 2020
343\sim 4 10610^6 保证 aa 递增
565\sim 6 10510^5
7107\sim 10 10610^6

提示

请注意使用较快的输入方式。