QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#17754. Битва всех звёзд

Statistics

В качестве смелого отступления от традиций в этом году на Гранд-контесте пройдёт специальная «Битва всех звёзд» (All-Star Showdown): показательный матч, в котором два элитных состава — Красная команда (Team Red) и Синяя команда (Team Blue) — сойдутся в очной дуэли по программированию. В отличие от стандартного формата соревнований, в этом матче допускаются произвольные размеры команд, при условии что каждый участник распределён ровно в одну команду.

Из зала славы выбраны $n$ звёздных участников. Каждый участник $i$ оценивается по трём ключевым измерениям: алгоритмическая интуиция, скорость реализации и устойчивость при отладке. Эти характеристики выражаются положительными целыми числами $(x_i, y_i, z_i)$, образующими трёхмерный вектор способностей, описывающий соревновательный профиль участника. Кроме того, каждому участнику $i$ сопоставлено положительное целое значение синергии $w_i$, отражающее его способность усиливать командный результат. Общая ценность команды определяется как произведение значений синергии её участников.

Чтобы сохранить честность борьбы и предотвратить доминирование групп схожих по стилю программистов, организаторы вводят строгое правило разнообразия: внутри любой одной команды евклидово расстояние между векторами способностей любых двух её участников должно быть не меньше $d$. Формально, для любых двух различных участников $i$ и $j$ из одной команды должно выполняться неравенство $\sqrt{(x_i - x_j)^2 + (y_i - y_j)^2 + (z_i - z_j)^2} \ge d$. Это гарантирует, что каждая команда представляет собой сбалансированное сочетание подходов к решению задач.

Оргкомитет хочет проанализировать комбинаторную структуру всех допустимых распределений. А именно, для каждого целого $k = 1, 2, \dots, n - 1$ требуется найти сумму ценностей Красной команды по всем допустимым разбиениям, в которых Красная команда содержит ровно $k$ участников.

Поскольку ответы могут быть большими, выведите их по модулю $998\,244\,353$.

Входные данные

Каждый тест содержит только один набор входных данных.

Первая строка содержит два целых числа $n$ и $d$ ($2 \le n \le 10^5$, $1 \le d \le 10^8$).

В следующих $n$ строках $i$-я строка содержит четыре целых числа $x_i$, $y_i$, $z_i$ и $w_i$ ($1 \le x_i, y_i, z_i, w_i \le 10^8$), обозначающих вектор способностей и значение синергии участника $i$.

Выходные данные

Выведите $(n - 1)$ строк, где $i$-я строка содержит целое число — сумму ценностей Красной команды по всем допустимым разбиениям, в которых Красная команда содержит ровно $i$ участников, по модулю $998\,244\,353$.

Примеры

Пример ввода 1

3 1
1 1 1 1
1 2 1 10
1 2 3 100

Пример вывода 1

111
1110

Пример ввода 2

3 2
1 1 1 1
1 2 1 10
1 2 3 100

Пример вывода 2

11
1100

Пример ввода 3

3 2
2 1 1 1
1 2 1 10
1 1 2 100

Пример вывода 3

0
0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.