atcoder#ARC125D. [ARC125D] Unique Subsequence

[ARC125D] Unique Subsequence

配点 : 700700

問題文

長さ NN の整数列 A1,A2,,ANA_1,A_2,\cdots,A_N が与えられます.

AA の非空な部分列 ss であって,以下の条件を満たすものの個数を 998244353998244353 で割った余りを求めてください.

  • AA から ss を取り出す方法が一意である. つまり,s=(s1,s2,,sk)s=(s_1,s_2,\cdots,s_k) とした時,Aidx(i)=siA_{idx(i)}=s_i (1ik1 \leq i \leq k)を満たす添字の列 $1 \leq idx(1) がちょうど一つ存在する.

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1AiN1 \leq A_i \leq N
  • 入力される値はすべて整数である

入力

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

NN

A1A_1 A2A_2 \cdots ANA_N

出力

答えを出力せよ.

3
1 2 1
5

以下の 55 つの部分列が条件を満たします.

  • (1,1)(1,1)
  • (1,2)(1,2)
  • (1,2,1)(1,2,1)
  • (2)(2)
  • (2,1)(2,1)

部分列 (1)(1) は取り出す方法が 22 通りあるので条件を満たしません.

4
4 2 1 3
15
12
1 2 3 6 9 2 3 3 9 6 1 6
1178