#P14266. [ROI 2015 Day2] 保护野生动物

    ID: 16055 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>2015Special Judge位运算构造ROI(俄罗斯)

[ROI 2015 Day2] 保护野生动物

题目背景

译自 ROI 2015 Day2 T1. Поможем дикой природе

题目描述

“野生动物研究基金会”在过去的 tt 年中,每年都会拨款支持北方动物的研究项目。共有三家机构申请这些资助:一家研究海豹,另一家研究驯鹿,第三家研究北极熊。

为了简化财务管理,基金会制定了如下规则:

  1. 每笔资助的金额必须是 22 的幂次,即金额为 2k2^k,其中 kk 为某个满足 k0k \ge 0 的整数;
  2. 同一家机构在同一年内获得的所有资助金额必须各不相同。

在第 ii 年,基金会计划将共计 nin_i 个资金单位全部分配出去作为资助。对资金使用效果的比较只能在三家机构获得的、资助金额相同的项目之间进行。这样的资助称为目标资助。若三家机构的分配方案使得被用于目标资助的总金额尽可能大,则称该分配方案是最优的

例如,当年可用于所有资助的总金额为 4747 个单位时,一种最优的分配方案是:给每家机构各分配两笔目标资助,金额分别为 2288。这样,共有 3×(2+8)=303 \times (2 + 8) = 30 个资金单位属于目标资助。剩余的 1717 个单位可以任意分配,例如:给第一家机构 1616 个单位,给第三家机构 11 个单位。可以证明,在总额为 4747 的情况下,目标资助的金额总和不可能超过 3030

请编写一个程序,对于每一年给定的总资助额 nin_i,确定三家机构在最优分配下应分别获得多少资金单位。

输入格式

输入的第一行包含一个整数 tt —— 表示年份的数量(1t1001 \le t \le 100)。接下来的 tt 行中,第 ii 行包含一个整数 nin_i —— 第 ii 年需全部分配出去的总资金额。

输出格式

输出共 tt 行。第 ii 行应包含三个整数,分别表示在最优分配方案中三家机构各自获得的资助总额。若存在多个最优方案,输出任意一种即可。

3
4
21
47
0 0 4
7 7 7
26 10 11

提示

数据范围

子任务编号 分值 nin_i 范围
1 16 1ni<641 \le n_i < 64
2 33 1ni<5121 \le n_i < 512
3 17 1ni<2171 \le n_i < 2^{17}
4 34 1ni<2601 \le n_i < 2^{60}