题目描述
给定一个整数序列 a1,a2,⋯,an,求出一个递增序列 b1<b2<⋅⋅⋅<bn,使得序列 ai 和 bi 的各项之差的绝对值之和 ∣a1−b1∣+∣a2−b2∣+⋯+∣an−bn∣ 最小。
输入格式
第一行为数字 n(1≤n≤106),接下来一行共有 n 个数字,表示序列 ai(0≤ai≤231−1)。
输出格式
第一行输出最小的绝对值之和。
第二行输出序列 bi,若有多种方案,只需输出其中一种。
5
2 5 46 12 1
47
2 5 11 12 13
提示
【数据范围】
- 40% 的数据 n≤5000;
- 60% 的数据 n≤300000;
- 100% 的数据 n≤106,0≤ai≤231−1;
题目来源:BalticOI 2004 Day 1, Sequence。
感谢 @TimeTraveller 提供 SPJ。