进退的艺术
题号:NC312281
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

遇到冲突时
各退一步,海阔天空;
各进一步,两败俱伤。
一方进,一方退,
进的一方得利,退的一方吃亏。

\hspace{15pt}为了建立数学模型验证以上说法的正确性,Zaoly 假设了 n 个人,其中第 i 个人的性格值为 a_i1 \le i \le n)。如果第 i 个人和第 j 个人发生冲突(1 \le i < j \le n),两人的性格值 a_ia_j 将会影响冲突的处理结果和两人的心情值:
\hspace{23pt}\bullet\,a_i + a_j \le m,则冲突缓解,第 i 个人的心情值增加 a_i,第 j 个人的心情值增加 a_j
\hspace{23pt}\bullet\,a_i + a_j > m,则冲突激化,第 i 个人的心情值减少 a_j,第 j 个人的心情值减少 a_i

\hspace{15pt}一开始,这 n 个人的心情值都为 0。之后这些人当中,每两个不同的人都发生一次冲突(共发生 \tfrac {n \cdot (n - 1)} 2 次冲突)。
\hspace{15pt}请你求出每个人最后的心情值。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T1 \le T \le 2 \cdot 10^4)代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入用空格隔开的两个整数 nm2 \le n \le 2 \cdot 10^50 \le m \le 10^9),表示人数、判定冲突是否缓解的阈值。
\hspace{15pt}第二行输入用空格隔开的 n 个整数 a_1, a_2, \dots, a_n0 \le a_i \le m),表示每个人的性格值。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \cdot 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行输出用空格隔开的 n 个整数,其中第 i1 \le i \le n)个整数表示第 i 个人最后的心情值。
示例1

输入

复制
3
4 9
3 4 5 6
6 20
1 15 6 3 10 0
7 1
1 1 1 1 1 1 1

输出

复制
9 2 4 -3
5 29 9 15 25 0
-6 -6 -6 -6 -6 -6 -6