压岁钱
题号:NC313366
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

除夕之夜,爆竹声中一岁除。小红正坐在年夜饭桌旁,一边品尝着热气腾腾的饺子,一边盯着手机里的微信群。长辈们在这个时刻最喜欢在不同的亲友群里发放红包。就在此时,时钟已经走向了深夜,距离零点的钟声敲响只剩下 latex 秒。为了辞旧迎新,小红希望在零点之前尽可能多地收集《压岁钱》。
手机里一共有 latex 个亲友红包群。对于每个红包群 latex,里面都有 latex 个待领取的红包,且由于长辈们发得比较平均,该群里的每个红包金额都是 latex 元。然而,领取这些红包是需要时间的:
1. 如果小红决定从第 latex 个群里领取红包(无论领取几个),她首先需要花费 latex 秒的固定时间切换进这个群。
2. 在进入第 latex 个群后,每拆开一个红包都需要额外花费 latex 秒的时间。
3. 如果小红不在某个群领红包,则不需要花费任何时间在该群上。
小红希望在总时间不超过 latex 秒的前提下,能够收集到总金额最高的压岁钱。请你帮她计算出这个最高金额,并告诉她在每个群分别领取了多少个红包。

输入描述:

输入仅包含一组测试数据。
第一行包含四个整数 latex (latexlatexlatex),分别表示红包群的数量、进入每个群的固定时间、拆开一个红包所需的时间,以及总的时间限制。
第二行包含 latex 个整数 latex (latex),表示每个红包群中的红包数量。
第三行包含 latex 个整数 latex (latex),表示每个红包群中单个红包的金额。

输出描述:

输出一行 latex 个整数,第 latex 个整数表示在第 latex 个群领取的红包数量。如果有多种方案能获得最高总金额,输出其中任意一种即可。
示例1

输入

复制
3 1 2 5
3 2 3
1 5 3

输出

复制
0 2 0

说明

在样例中,总共有 5 秒时间。进入任何一个群需 1 秒,拆开一个红包需 2 秒。
- 红包群 1:有 3 个红包,每个 1 元。
- 红包群 2:有 2 个红包,每个 5 元。
- 红包群 3:有 3 个红包,每个 3 元。
策略:
1. 不进入红包群 1(耗时 0 秒,获得 0 元)。
2. 进入红包群 2 并拆开 2 个红包。耗时 = latex 秒。获得金额 = latex 元。
3. 不进入红包群 3(耗时 0 秒,获得 0 元)。
此时总耗时为 5 秒,总金额为 10 元,这是能获得的最高金额。输出 `0 2 0` 代表分别从三个群取出的红包数量。