#HK4191. 「BalticOI 2023」Sequence

「BalticOI 2023」Sequence

题目描述

题目译自 BalticOI 2023 Day2「Sequence」

一列整数 (x1,…,xm)(x_1,\ldots,x_m) 是好的,如果 x1=1x_1=1 并且对于每个 1<j≤m1<j\le m,要么有 xj=xj−1+1x_j=x_{j-1}+1,要么对于某个 kk 和 ll 满足 0<k≤l<j0<k\le l<j 有 xj=xk⋅xlx_j=x_k\cdot x_l。例如,序列 (1,1)(1,1) 和 (1,2)(1,2) 都是好的,但是序列 (1,3)(1,3) 不是好的。对于给定的 nn 个整数 w1,…,wnw_1,\ldots,w_n,定义一个对于 1≤j≤m1\le j\le m 都满足 1≤xj≤n1\le x_j\le n 的整数序列 (x1,…,xm)(x_1,\ldots,x_m) 的权重为

wx1+…+wxmw_{x_1}+\ldots+w_{x_m}

例如,给定的权重 w1=10,w2=42,w3=1w_1=10,w_2=42,w_3=1,序列 (1,1)(1,1) 的权重为 2020,序列 (1,3)(1,3) 的权重为 1111。对于 1≤v≤n1\le v\le n,定义 svs_v 为包含 vv 的好序列可能的最小权重。

你的任务是确定 s1,…,sns_1,\ldots,s_n。

输入格式

第一行一个整数 nn,表示权重序列的长度。

接下来 nn 行,每行一个整数 wiw_i,表示权重序列。

输出格式

输出 nn 行,第 ii 行输出 sis_i。

3
10
42
1

10
52
53

数据范围与提示

对于全部数据,满足:

  • 1≤n≤3⋅1041\le n\le 3\cdot 10^4
  • 1≤wi≤1061\le w_i\le 10^6(对于 1≤i≤n1\le i\le n)

详细子任务附加限制及分值如下表。

子任务编号 附加限制 分值
11 n≤10n\le 10 1111
22 n≤300,w1=…=wn=1n\le 300,w_1=\ldots=w_n=1 1010
33 n≤300,w1=…=wnn\le 300,w_1=\ldots=w_n
44 n≤1400,w1=…=wn=1n\le 1400,w_1=\ldots=w_n=1 99
55 n≤5000n\le 5000 4545
66 无附加限制 1515