编程题
### 问题描述 大衣有一个长度为 $N$ 的数组 $A​$。 对于每一个给定的整数 $K(1\le K\le N)​$,进行如下操作: - 记录一个分数,起初是 $0​$。 - 给你一个桶,最初含有元素 $A_1,A_2,\dots,A_{K-1}​$。 - 对于从 $K$ 到 $N$ 的索引 $i$,先将 $A_i​$ 加到桶中,然后选择一个桶中的元素,将其加到你的分数里,并将它从桶中删除。 大衣想知道在 $K=1,2,3,\dots,N​$ 时,可以获得的最高分数分别是多少。 ### 输入格式 第一行输入一个正整数 $N$ 表示数组的长度。 第二行输入 $N$ 个整数 $A_1,A_2,\cdots,A_N$ 表示数组的元素。 ### 输出格式 输出 $N$ 个整数表示在 $K=1,2,3,\dots,N​$ 时,可以获得的最高分数分别是多少,答案之间用空格分隔。 ### 样例输入1 ```text 2 1 24 ``` ### 样例输出1 ```text 25 24 ``` ### 样例输入2 ```text 4 5 8 3 2 ``` ### 样例输出2 ```text 18 16 13 8 ``` ### 样例输入3 ```text 5 10 21 32 43 54 ``` ### 样例输出3 ```text 160 150 129 97 54 ``` ### 说明 样例 $1$: - 对于 $K=1​$,最初桶是空的。 - 当 $i=1$,将 $A_1=1$ 放入桶中。选择元素 $1$ 加到分数中并删除。 - 当 $i=2$,将 $A_2=24$ 放入桶中。选择元素 $24$ 加到分数中并删除。 - 可以获得的最高分数是 $1+24=25$。 - 对于 $K=2$,最初桶中含有 $A_1=1​$。 - 当 $i=2$,将 $A_2=24$ 放入桶中。选择元素 $24$ 加到分数中并删除。 - 可以获得的最高分数是 $24$。 样例 $2$: - 对于 $K=1​$,所有元素都会被选择,最高分数是 $5+8+3+2=18​$ 。 - 对于 $K=2​$,最初桶中含有 $A_1=5​$。 - 当 $i=2$,将 $A_2=8$ 放入桶中。选择元素 $5$ 加到分数中并删除。 - 当 $i=3$,将 $A_3=3$ 放入桶中。选择元素 $3$ 加到分数中并删除。 - 当 $i=4$,将 $A_4=2$ 放入桶中。选择元素 $8$ 加到分数中并删除。 - 可以获得的最高分数是 $5+3+8=16​$。 - 对于 $K=3$,最初桶中元素为 `[5,8]`。 - 当 $i=3$,将 $A_3=3$ 放入桶中。选择元素 $5$ 加到分数中并删除。 - 当 $i=4$,将 $A_4=2$ 放入桶中。选择元素 $8$ 加到分数中并删除。 - 可以获得的最高分数是 $5+8=13$。 - 对于 $K=4$,只能选择一个元素,我们选择元素 $8$ 得到最高分数。 ### 评测数据规模 对于所有的评测数据,$1\le N\le 2\times10^5$,$1\le A_i\le10^9$。
查看答案
赣ICP备20007335号-2