#loj5563. 「POI2026 R1」Wyrażenie arytmetyczne

「POI2026 R1」Wyrażenie arytmetyczne

AdditionalFile5563.zip

#5563. 「POI2026 R1」Wyrażenie arytmetyczne

标签: 传统 | 时间限制: 11000 ms | 内存限制: 128 MiB |

题目描述

题目译自 XXXIII Olimpiada Informatyczna – I etap Wyrażenie arytmetyczne

Bajtek 喜欢在空闲时间解算术谜题。这类谜题通常都差不多:给定参数 a,b,ca, b, c 和一个数字 nn,需要构造一个算术表达式,使其计算结果等于 nn,且成本最小。

算术表达式的定义如下(递归定义):

  • 基本表达式 11 是一个算术表达式,其成本为 aa,计算结果为 11

  • 如果 XXYY 是算术表达式,成本分别为 xxyy,计算结果分别为 ppqq,那么:

    1. (X+Y)(X+Y) 是一个算术表达式,成本为 x+y+bx + y + b,计算结果为 p+qp + q
    2. (X×Y)(X \times Y) 是一个算术表达式,成本为 x+y+cx + y + c,计算结果为 p×qp \times q

例如:((1+1)×(1+1))×(1+1)((1+1) \times (1+1)) \times (1+1) 是一个合法表达式,成本为 6a+3b+2c6a + 3b + 2c,计算结果为 88

Bajtek 想知道,对于从 11nn 的每一个整数,最小的表达式成本分别是多少。请你帮助他计算这些最小成本。

输入格式

仅一行四个整数 n,a,b,cn, a, b, c (1n3000, 1a,b,c109)(1 \leq n \leq 3000,\ 1 \leq a, b, c \leq 10^9)

输出格式

仅一行输出 nn 个整数,用单个空格分隔,第 ii 个数表示计算结果为 ii 的算术表达式的最小成本。

样例

输入

6 1 4 2

输出

1 6 11 14 19 19

下表展示了计算到各数字的最优表达式及其成本。

数字 表达式 成本计算
11 11 a=1a = 1
22 (1+1)(1+1) 2a+b=2+4=62a + b = 2 + 4 = 6
33 ((1+1)+1)((1+1)+1) 3a+2b=3+8=113a + 2b = 3 + 8 = 11
44 ((1+1)×(1+1))((1+1) \times (1+1)) 4a+2b+c=4+8+2=144a + 2b + c = 4 + 8 + 2 = 14
55 (((1+1)×(1+1))+1)(((1+1) \times (1+1))+1) 5a+3b+c=5+12+2=195a + 3b + c = 5 + 12 + 2 = 19
66 (((1+1)+1)×(1+1))(((1+1)+1) \times (1+1)) 5a+3b+c=5+12+2=195a + 3b + c = 5 + 12 + 2 = 19

附加样例

  1. n=9, a=2, b=3, c=1n=9,\ a=2,\ b=3,\ c=1
  2. n=200, a=1, b=2, c=3n=200,\ a=1,\ b=2,\ c=3
  3. n=2500, a=1, b=1, c=1n=2500,\ a=1,\ b=1,\ c=1
  4. n=3000, a=b=c=109n=3000,\ a=b=c=10^9

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 附加限制 分值
11 n10n \leq 10 1313
22 n200n \leq 200 3131
33 a=b=c=1a = b = c = 1 1313
44 无附加限制 4343