atcoder#ARC159F. [ARC159F] Good Division

[ARC159F] Good Division

配点 : 900900

問題文

数列 XX が次の条件を満たす時、XX良い数列と呼ぶことにします。

  • 次の操作を 00 回以上繰り返すことで XX を空の列に出来る。- XX の隣り合う 22 要素 xi,xi+1x_i,x_{i+1} であって xixi+1x_i \neq x_{i+1} を満たすものを選び、削除する。
  • XX の隣り合う 22 要素 xi,xi+1x_i,x_{i+1} であって xixi+1x_i \neq x_{i+1} を満たすものを選び、削除する。

2N2N 要素の数列 A=(a1,,a2N)A=(a_1,\ldots,a_{2N}) が与えられます。 AA11 個以上の連続部分列に分割する方法は 22N12^{2N-1} 通りありますが、そのうち各連続部分列がすべて良い数列であるようなものが何通りあるかを 998244353998244353 で割った余りを求めてください。

制約

  • 1N5×1051 \leq N \leq 5 \times 10^5
  • 1ai2N1 \leq a_i \leq 2N
  • 入力はすべて整数

入力

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

NN

a1a_1 \ldots a2Na_{2N}

出力

答えを出力せよ。

3
1 1 2 3 4 5
2

以下の 22 通りの分割方法が条件を満たします。

  • (1,1,2,3,4,5)(1,1,2,3,4,5)
  • (1,1,2,3),(4,5)(1,1,2,3),(4,5)
1
1 2
1
1
1 1
0
12
4 2 17 12 18 15 17 4 22 6 9 20 21 16 23 16 13 2 20 15 16 3 7 15
2048