問題一覧 > 通常問題

No.2520 L1 Explosion

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 52
作問者 : MasKoaTSMasKoaTS / テスター : ShirotsumeShirotsume fky_fky_
0 ProblemId : 7709 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-10-25 00:34:48

問題文

魔法使いのコアさんは、$1, 2, \dots, N$ の番号がついた $N$ 体のモンスターと戦っています。
モンスター $i$ $(1 \leq i \leq N)$ は二次元平面上の座標 $(X_{i}, Y_{i})$ に位置し、体力は $H_{i}$ です。

コアさんは二次元平面上の座標を自由に一つ選び、爆裂魔法を使用します。

座標 $(x,y)$ で爆裂魔法を使用したとき、任意のモンスター $i$ $(1 \leq i \leq N)$ について、その体力を $d_{i}$ だけ減らせます。
ここで、$d_{i} = \max( M - |x - X_{i}| - |y - Y_{i}|, 0 )$ です。

$i = 1,2,\dots,N$ の順に、次の問いに答えてください。

  • 二次元平面上において、次の条件を満たす点 $(x,y)$ からなる領域の面積を $\mathrm{mod} \ 998244353$ で求めよ。

    • コアさんが座標 $(x, y)$ で爆裂魔法を使用したとき、$N$ 体のモンスターのうちちょうど $i$ 体の体力が $0$ 以下になる

注記

本問の制約下において、求める面積は有理数であることが保証されます。

これを既約分数 $p / q$ と表したとき、$p \equiv q \times r \pmod{998244353}$ を満たす整数 $r$ $(0 \leq r < 998244353)$ が
一意に定まることが保証されるので、この $r$ を求めてください。

制約

  • $1 \leq N \leq 1500$

  • $2 \leq M \leq 10^{9}$

  • $-10^{9} \leq X_{i}, Y_{i} \leq 10^{9}$ $(1 \leq i \leq N)$

  • $1 \leq H_{i} \leq M - 1$ $(1 \leq i \leq N)$

  • $(X_{i}, Y_{i}) \neq (X_{j}, Y_{j})$ $(1 \leq i < j \leq N)$

  • 入力はすべて整数

入力

入力は次の形式で与えられます。

$N$ $M$
$X_{1}$ $Y_{1}$ $H_{1}$
$X_{2}$ $Y_{2}$ $H_{2}$
   $\vdots$
$X_{N}$ $Y_{N}$ $H_{N}$
  • $1$ 行目には $N$ と $M$ がこの順に半角スペース区切りで与えられる

  • $(1 + i)$ $(1 \leq i \leq N)$ 行目には $X_{i}, Y_{i}, H_{i}$ がこの順に半角スペース区切りで与えられる

出力

答えを $1$ 行ずつ合計 $N$ 行に出力してください。

$i$ $(1 \leq i \leq N)$ 行目には、$i$ 番目の問いに対する答えを出力してください。

サンプル

サンプル1
入力
1 5
0 0 3
出力
8

$1$ 番目の問いにおいて、条件を満たす領域の面積は $8$ です。

例えば、コアさんが座標 $(0,1)$ で爆裂魔法を使用したとき、 $$ d_{1} = \max( 5 - | 0 - 0 | - | 1 - 0 |, 0 ) = 4 $$ より、モンスター $1$ の体力を $4$ 減らして $-1 \leq 0$ にすることができます。

サンプル2
入力
3 7
0 -2 5
2 0 4
-1 0 5
出力
499122201
4
499122177

各問いの答えはそれぞれ $\displaystyle \dfrac{49}{2}, 4, \dfrac{1}{2}$ です。

これらを $\mathrm{mod} \ 998244353$ で表すと、それぞれ $499122201, 4, 499122177$ となります。

サンプル3
入力
5 984744545
-146570235 -7990790 301202754
143580064 67918028 684955441
-43425514 -103157442 445005707
93700695 139883361 763292656
-1577876 104468051 352308994
出力
603011850
593654922
420568561
57524703
424785206

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。