4234 - 计数(count)

题目描述

小 C 有一个元素两两不同的长度为 n 的序列 A

小 C 可以做若干次以下操作(可以不做):

  • 选择 1\le l\le r\le |A||A| 表示当前序列 A 的元素个数),设 x=\min_{i=l}^r A_i,删除区间 [l,r] 中除最小值 x 的其他所有元素,然后将序列 A 中剩下的元素从左到右依次连接形成新的序列 A^{'},最后 A\leftarrow A^{'}

小 C 想要知道对序列 A 进行若干次操作后能够形成多少种不同的序列?由于答案可能很大,你只需要告诉小 C 答案对 998244353 取模后的值。

输入

输入的第一行包含一个整数 n

接下来一行包含 n 个整数,第 i 个整数表示 A_i

输出

共一行,输出一个整数。

样例

输入

2
2 1

输出

2

输入

4
2 4 1 3

输出

6
说明

数据规模与约定

  • 对于 20\% 的数据,保证 n\le 5
  • 对于 40\% 的数据,保证 n\le 16
  • 对于 60\% 的数据,保证 n\le 500
  • 对于 80\% 的数据,保证 n\le 5000
  • 对于 100\% 的数据,保证 1\le n\le 3\times 10^51\le A_i\le 10^9,保证序列 A 中元素两两不同。

样例 1 解释

最后可能形成的序列如下:

[2,1][2]

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 基础


上一题 下一题