题号:NC307643
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
偏远的小镇上,三兄弟共同经营着一家小型矿业公司“兄弟矿业”。公司旗下有三座矿山:金矿、银矿和铜矿,它们的初始产值分别用非负整数

、

和

表示。这些矿山的产出是小镇经济的核心,支撑着三兄弟和许多矿工家庭的生计。
然而,各矿山的产值波动剧烈,有时金矿收益高而银矿、铜矿低迷,有时则相反。这种不稳定性让公司收入难以预测,也常引发兄弟间的争执。为了稳定经营,三兄弟设计了一个公平的产值调整策略,每年执行一次,每次调整时,将根据当前的产值

、

、

,计算新产值:
1. 金矿新产值:

;
2. 银矿新产值:

;
3. 铜矿新产值:

;
其中,

表示向下取整。例如,

,

。
计算出

、

、

后,同时更新:

变为

,

变为

,

变为

,作为下一年调整的基础。
三兄弟认为这个方法能平衡产值波动,于是计划连续执行

次调整。现在,请你帮他们计算,经过

次调整后,金矿、银矿和铜矿的产值分别是多少。
输入描述:
输入的第一行包含一个整数
,表示测试用例的数量。
接下来的
行,每行包含四个整数
,分别表示金矿、银矿和铜矿的初始产值,以及需要执行的调整次数。
- 对于
的评测用例,
,
。
输出描述:
对于每个测试用例,输出一行,包含三个整数,表示经过
次调整后金矿、银矿和铜矿的产值,用空格分隔。