4406: 构造B数组

内存限制:128 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:Special Judge 上传者:
提交:7 通过:3

题目描述

本题将给你一个整数数组 a , 其长度为 m

需要你根据以下几个条件构造出数组 b :

  1. 长度为 m ,且都为整数。
  2. b 数组首项为 0。
  3. 对于任意一对索引 i 和 j1 ≤ i, j ≤ m),如果 ai = aj 则 bi = bj(注意,如果 ai ≠ aj,则 bi 和 bj 相等与否随意)。
  4. 对于任意索引 ii∈[1, m−1]),要么使得 bi = bi+1,要么使得 bi + 1 = bi + 1

请你计算出所有可以根据上述条件构造出的数组 b 的数量

输入格式

第一行包含一个整数 m

第二行包含 n 个整数 a1, a2, …, am

输出格式

一个整数,由于答案可能很大,你只需要输出对 998244353 取模后的结果。

输入样例 复制

5
1 2 1 2 3

输出样例 复制

2

数据范围与提示

所有测试点满足 2 ≤ m ≤ 2×1051 ≤ ai ≤ 109


例如,如果 a=[1, 2, 1, 2, 3],则一共有 2 个满足条件的数组 b,分别是 b=[0,0,0,0,0] 和 b=[0,0,0,0,1]



输入样例2:

2
100 1

输出样例2:

2

输入样例3:

4
1 3 3 7

输出样例3:

4