#P1032. 异变风暴

    ID: 44 传统题 1000ms 256MiB 尝试: 0 已通过: 0难度: 普及 ← 上一题 下一题 → 随机一题 上传者: 标签 模拟 数学 快速幂 数论
显示设置

异变风暴

题目描述

小P是个生物实验室的专家,作为喜欢做实验的实验人员,这天,他在观测一种姬霓肽型的媄病毒时,突然有了一个发现。

小P发现:这种媄病毒在遇上皛黑恣溶液时,会出现一次异变。

已知溶液的初始数量为 bb 毫升,每次异变会消耗 kk 毫升溶液。一次异变持续 rr 分钟,在这 rr 分钟里,每过 nn 分钟病毒的数量就会翻 2n2^n 倍。

也就是说,一次异变结束后,病毒数量的放大倍数为

M=rn×2nM = \frac{r}{n} \times 2^n

本题保证 n∣rn \mid r,因此 MM 一定是整数。每次异变对所有试管同时生效。

小P一共有 xx 个试管,第 ii 个试管里初始装有 aia_i 个媄病毒。

异变会一直进行下去,直到溶液全部用完,或者剩余溶液少于 kk 毫升(不足以再进行一次异变)为止。

现在小P想知道,此时每个试管中的媄病毒数量分别是多少。由于媄病毒数量过多会引起癌锟病毒滋生,所以请把每个结果都对 998244353998244353 取模后输出。

输入格式

输入共两行。

第一行有五个用空格隔开的整数,依次为 x,n,k,r,bx, n, k, r, b。

第二行有 xx 个用空格隔开的整数,依次为 a1,a2,…,axa_1, a_2, \ldots, a_x。

输出格式

输出共 xx 个用空格隔开的整数,依次表示每个试管中最终的媄病毒数量对 998244353998244353 取模后的结果。

输入输出样例 #1

输入 #1

3 5 3 10 7
1 1 2

输出 #1

4096 4096 8192

说明

样例解释

初始三个试管分别有 [1,1,2][1, 1, 2] 个媄病毒,溶液有 77 毫升,每次异变消耗 33 毫升。

一次异变的放大倍数为 M=105×25=2×32=64M = \dfrac{10}{5} \times 2^5 = 2 \times 32 = 64。

  • 第一次异变:溶液变为 7−3=47 - 3 = 4 毫升,试管中的病毒数量变为 $[1 \times 64, 1 \times 64, 2 \times 64] = [64, 64, 128]$。
  • 第二次异变:溶液变为 4−3=14 - 3 = 1 毫升,试管中的病毒数量变为 $[64 \times 64, 64 \times 64, 128 \times 64] = [4096, 4096, 8192]$。

此时剩余溶液 11 毫升,小于 k=3k = 3 毫升,异变结束。因此答案为 4096 4096 8192。

数据范围

  • 对于 100%100\% 的数据,保证 n∣rn \mid r,1≤x≤1061 \le x \le 10^6,1≤k≤1061 \le k \le 10^6,1≤r≤10171 \le r \le 10^{17},1≤b≤10181 \le b \le 10^{18},1≤ai≤10121 \le a_i \le 10^{12}。