atcoder#ARC128D. [ARC128D] Neq Neq

[ARC128D] Neq Neq

题目描述

N N 個のボールが一列に並べられており,左から順に 1 1 から N N までの番号がついています. ボール i i には整数 Ai A_i が書かれています.

あなたは,以下の操作を好きなだけ繰り返すことができます.

  • 連続して並んでいる 3 3 つのボール x,y,z x,y,z (1  x < y < z  N 1\ \leq\ x\ <\ y\ <\ z\ \leq\ N ) を選ぶ. ただしこの時,Ax  Ay A_x\ \neq\ A_y かつ Ay  Az A_y\ \neq\ A_z を満たす必要がある. その後,ボール y y を食べる. なお,この操作の後,ボール x x とボール z z は列の中で連続しているとみなす.

最終的に残っているボールの集合としてありうるものの個数を 998244353 998244353 で割った余りを求めてください.

输入格式

入力は以下の形式で標準入力から与えられる.

N N A1 A_1 A2 A_2 \cdots AN A_N

输出格式

答えを出力せよ.

题目大意

给定 NN 个元素的序列,每次操作可以选择连续三个整数 Ai1AiA_{i-1}\ne A_iAiAi+1A_i\ne A_{i + 1} ,然后将 AiA_i 删除。求最终可能得到的序列数量。

4
1 2 1 2
3
5
5 4 3 2 1
8
5
1 2 3 2 1
8
9
1 4 2 2 9 6 9 6 6
14

提示

制約

  • 2  N  200000 2\ \leq\ N\ \leq\ 200000
  • 1  Ai  N 1\ \leq\ A_i\ \leq\ N
  • 入力される値はすべて整数である

Sample Explanation 1

最終的に残っているボールの集合として考えられるのは,{1,2,3,4},{1,2,4},{1,3,4} \{1,2,3,4\},\{1,2,4\},\{1,3,4\} 3 3 通りです.

Sample Explanation 2

異なる操作方法でも,最終的に残るボールの集合が同じであれば区別しません.

Sample Explanation 3

残るボールに書かれた整数を並べた列が同じでも,ボールの集合が異なる場合は区別されます.