仰望水面的歪
题号:NC280263
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

~~~~~~小歪正在水底潜水,他所在的位置距离水面的直线距离为 h 。小歪有一个神奇的激光装置,激光射向水面后会发生全反射现象。
~~~~~~以小歪所在的位置为原点建立三维坐标轴,小歪的坐标即为 (0,0,0) 。在水中,有一些坐标需要小歪使用激光击中,第 i 个坐标使用 (x_i,y_i,z_i) 表示。求解,对于每一个坐标,小歪需要以什么向量方向射出激光,使得经过一次水面全反射后恰好击中它。

输入描述:

~~~~~~第一行输入两个整数 n,h \left( 1 \leqq n \leqq 100;\ 1 \leqq h \leqq 10^9 \right) 代表需要击中的坐标位置数量、距离水面的距离。
~~~~~~随后 n 行,每行输入三个整数 x,y,z \left( 1 \leqq x,y \leqq 10^9; -10^9 \leqq z \leqq h\right) 代表需要击中的坐标。

输出描述:

~~~~~~对于每一个坐标,在一行上输出三个整数 i,j,k ,代表射出向量方向,你需要保证 \gcd(i,j,k) = 1
示例1

输入

复制
2 5
3 3 2
4 4 0

输出

复制
3 3 8
2 2 5

说明

(2,2,5) 位置射出射线,经过全反射后会到达目标点 2