CF1086F Forest Fires
题目描述
伯兰德森林是在几十年前种植的,形成了一个无限大的网格,每个格子里都有一棵树。现在,这些树已经长大,形成了非常密集的结构。
实际上,这么密集,以至于火灾成了森林的真正威胁。今年伯兰德的气候异常炎热,一些树木被点燃了!
第 $0$ 秒时,有一些树木最先被点燃。每过一秒,所有当前正在燃烧的树木会点燃所有尚未燃烧的相邻树木。若两个格子通过边或角相邻,则认为这两棵树是相邻的。幸运的是,经过 $t$ 秒后,伯兰德消防队终于赶到火灾现场,并瞬间扑灭了所有火焰。
现在他们想要计算火灾的破坏力。设 $val_{x, y}$ 表示位于格子 $(x, y)$ 的树被点燃的时刻(以秒为单位)。破坏力定义为所有被烧毁树木的 $val_{x, y}$ 之和。
显然,消防队员都是消防员而不是程序员,因此他们请你帮忙计算火灾的破坏力。
由于结果可能非常大,请输出其对 $998244353$ 取模的结果。
输入格式
第一行包含两个整数 $n$ 和 $t$($1 \le n \le 50$,$0 \le t \le 10^8$),分别表示最初被点燃的树的数量和消防队扑灭火灾的时刻。
接下来的 $n$ 行,每行包含两个整数 $x$ 和 $y$($-10^8 \le x, y \le 10^8$),表示最初被点燃的树的位置。
显然,网格上 $(0, 0)$ 的位置以及坐标轴的方向无关紧要,因为网格是无限的,答案与这些无关。
保证所有给定的树的位置两两不同。
网格是无限的,因此火势不会在到达 $-10^8$ 或 $10^8$ 时停止,而是会继续蔓延。
输出格式
输出一个整数,表示所有被烧毁树木的 $val_{x, y}$ 之和,对 $998244353$ 取模。
说明/提示
以下是前三个样例的示意图。灰色格子的 $val = 0$,橙色格子的 $val = 1$,红色格子的 $val = 2$。

由 ChatGPT 4.1 翻译