时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld
题目描述
Compute 对于某些特殊的数字有着独特的爱好。
例如,有三个正整数 a, b, c 和某一个目标值 k,如果
%3D%5Cgcd(b%2Cc)%3D%5Cgcd(a%2Cc)%3Dk)
,并且

,那么他认为这三个数是一组好数。 其中
)
表示整数 x 和 y
的
最大公约数。
当然这不够刺激。现在 Compute 想要知道,如果已知三个数的和 n
和目标值 k,是否存在一组 a, b, c 可以让它们是一组好数。
输入描述:
第一行输入一个整数 T (
),表示数据的组数。对于每组数据:
仅一行包含两个整数 n, k (
),分别表示 a, b, c 的和与目标值。
输出描述:
对于每一组数据,在一行输出三个整数,中间以空格分隔,表示找到的一种方案。
如果有多种方案,任意输出其中一种即可。
特别地,如果没有满足条件的方案,在一行输出 -1 -1 -1。