时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述

小红站在数轴的

点上,她准备进行

次操作,每次操作如下:

若小红站在原点,则原地不动。

否则按朝原点的方向,移动

距离。

小红可以自己选择操作的先后次序。她希望给出一个方案,使得最终移动的总距离最小,你能帮帮她吗?
输入描述:
第一行输入两个整数
,用空格隔开。分别代表小红的操作数量、小红的初始位置。
第二行输入
个正整数
,代表小红每次操作移动的距离(若移动)。
数据保证至少存在一种可能的解。
输出描述:
第一行输出一个整数,代表小红移动的最小总距离。

第二行输入

个正整数

,代表第

次准备移动的距离为

。请保证输出的

数组为一个长度为

的排列。

如果有多种可能的解,输出任意一个均可。
示例1
说明
小红第一步进行操作5,想左移动1距离来到原点,后面四次操作均不移动。
因此输出的排列只需要保证第一个元素为5即可。