No.3530 「」
レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 9
作問者 :
aa36
/ テスター :
Yoyoyo8128
yu23578
Germanium32
GaLLium
タグ : / 解いたユーザー数 9
作問者 :
Germanium32
問題文最終更新日: 2026-05-04 21:13:28
問題文
平面上に $N$ 個の点 $1,\dots ,N$ があります。点 $i$ の座標は $(x_i,y_i)$ です。
それぞれの点に以下のような操作を一回加えます。
- $s_i$ を $0,90,180,270$ のいずれかとして、$(x_i,y_i)$ と $(x_i+0.5,y_i)$ を結ぶ線分を $(x_i,y_i)$ を中心に反時計回りに $s_i,s_i+90$ 度回転させた線分 $2$ つを書き込む。
その後、新たに塗れる部分がなくなるまたはできなくなるまで、以下の操作を繰り返します。
-
$1\leq i,j\leq N$ となる異なる点 $i,j$ を、書き込んだ線分が「」(鉤括弧)の形をなすように選び、その中身を塗る。
- より厳密には $x_i\lt x_j$ かつ $y_i\gt y_j$ を満たし $s_i=270,s_j=90$ を満たす異なる整数 $i,j$ を選び、$(x_i,y_i),(x_i,y_j),(x_j,y_j),(x_j,y_i)$ を頂点としてもつ長方形を塗り潰す。
最終的に塗られた部分の周長(穴も含む)の合計の $4^N$ 通りに対する総和 $\mod 998244353$ を求めてください。
制約
- $1 \leq N \leq 2 \times 10^5$
- $-10^9 \leq x_i, y_i \leq 10^9$
- 入力は全て整数
入力
$N$ $x_1\ y_1$ $\vdots$ $x_N\ y_N$
出力
最後に改行してください。
サンプル
サンプル1
入力
2 1 1 3 0
出力
6
以下のように $s_1=270, s_2=90$ であるときのみ周長が $6$ であり、それ以外の時周長は $0$ です。
サンプル2
入力
10 -9570757 -8684416 -86136813 2285372 -47853785 -4113671 -9570757 -8684416 -66995299 -1371224 66995299 -2285373 -86136813 457074 -9570757 -7770267 -28712271 4113670 -86136813 457074
出力
591562628
$\mod 998244353$ を取った値を出力してください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。