atcoder#ABC136F. [ABC136F] Enclosed Points

[ABC136F] Enclosed Points

配点 : 600600

問題文

22 次元平面上の NN 個の点からなる集合 SS があり、ii 番目の点の座標は (xi,yi)(x_i, y_i) です。NN 個の点の xx 座標、yy 座標はそれぞれ相異なります。

SS の空でない部分集合 TT に対して f(T)f(T) を、各辺が座標軸と平行であって TT の点を全て含むような最小の長方形に含まれる点の個数として定義します。より正確には、

  • f(T):=Tf(T) := T に含まれる点について xx 座標の最小値と最大値を それぞれ a,ba, b, そして yy 座標の最小値と最大値をそれぞれ c,dc, d としたとき、axiba \leq x_i \leq b かつ cyidc \leq y_i \leq d を満たす 1iN1 \leq i \leq N の個数

SS の空でない全ての部分集合 TT についての f(T)f(T) の和を計算してください。答えは非常に大きくなることがあるので、998244353998244353 で割った余りを出力してください。

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 109xi,yi109-10^9 \leq x_i, y_i \leq 10^9
  • xixj(ij)x_i \neq x_j (i \neq j)
  • yiyj(ij)y_i \neq y_j (i \neq j)
  • 入力は全て整数である

入力

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

NN

x1x_1 y1y_1

::

xNx_N yNy_N

出力

SS の空でない全ての部分集合 TT についての f(T)f(T) の和を 998244353998244353 で割った余りを出力せよ。

3
-1 3
2 1
3 -2
13

1,2,31, 2, 3 番目の点をそれぞれ P1,P2,P3P_1, P_2, P_3 とします。S={P1,P2,P3}S = \{P_1, P_2, P_3\} の空でない部分集合は 77 個あり、それぞれに対する ff の値は次の通りです。

  • f({P1})=1f(\{P_1\}) = 1
  • f({P2})=1f(\{P_2\}) = 1
  • f({P3})=1f(\{P_3\}) = 1
  • f({P1,P2})=2f(\{P_1, P_2\}) = 2
  • f({P2,P3})=2f(\{P_2, P_3\}) = 2
  • f({P3,P1})=3f(\{P_3, P_1\}) = 3
  • f({P1,P2,P3})=3f(\{P_1, P_2, P_3\}) = 3

これらの和は 1313 です。

4
1 4
2 1
3 3
4 2
34
10
19 -11
-3 -12
5 3
3 -15
8 -14
-9 -20
10 -9
0 2
-7 17
6 -6
7222

和を 998244353998244353 で割った余りを出力することに注意してください。