#Z0015. 数位删减

    ID: 1851 Type: Default File IO: digitdel 1000ms 256MiB Tried: 35 Accepted: 9 Difficulty: 7 Uploaded By: Tags>S组模拟赛T2排序贪心

数位删减

题目描述

给定 nn 个正整数 a1,a2,…,ana_1,a_2,\dots,a_n。对每个数,你必须删去它十进制表示中的恰好一个数位;如果这个数只有一位,删去后得到 00。删除后允许出现前导零,并按通常的十进制方式解释,例如 100100 删去最高位的 11 后得到 00=000=0。

对每个数,请选择一个数位删除,使删除后得到的数尽可能小。

设第 ii 个数删除后得到 bib_i,令 ci=ai−bic_i=a_i-b_i。将所有 cic_i 从大到小排序,并按这个顺序依次执行对应的删除操作。每执行一次删除,输出当前所有数的总和。

若多个 cic_i 相同,任意顺序处理,每次输出结果不变。

输入格式

第一行一个正整数 nn。

第二行 nn 个正整数 a1,a2,…,ana_1,a_2,\dots,a_n,相邻两个数用空格隔开。

输出格式

输出 nn 行,每行一个整数,表示该次删除后剩余数字的总和。

4
1 2 3 4
6
3
1
0
4
12 23 34 45
73
42
21
10

样例解释

样例 11:四个数都是一位数,删除后都变成 00,减少量分别为 1,2,3,41,2,3,4。按减少量从大到小处理,总和依次为 10−4=610-4=6、6−3=36-3=3、3−2=13-2=1、1−1=01-1=0。

样例 22:四个数的最优删除分别为 12→112\to1、23→223\to2、34→334\to3、45→445\to4,减少量分别为 11,21,31,4111,21,31,41。按减少量从大到小处理,总和依次为 114−41=73114-41=73、73−31=4273-31=42、42−21=2142-21=21、21−11=1021-11=10。

数据范围与约定

子任务 分值 限制
11 3030 1≤n≤101 \le n \le 10,1≤ai≤10001 \le a_i \le 1000
22 1≤n≤1051 \le n \le 10^5,1≤ai≤991 \le a_i \le 99
33 4040 1≤n≤1051 \le n \le 10^5,1≤ai≤1091 \le a_i \le 10^9

下发样例

下发样例下载