AT_abc406_g [ABC406G] Travelling Salesman Problem
题目描述
[problemUrl]: https://atcoder.jp/contests/abc406/tasks/abc406_g
在数轴上,有你和 $N$ 个商人。商人编号为 $1, 2, \ldots, N$。
开始时,你在坐标 $0$ 处,商人 $i$ 在坐标 $X_i$ 处。此外,每个商人都持有一个物品,商人 $i$ 持有的物品记为物品 $i$。
你的目标是按顺序接收物品 $1, 2, \ldots, N$。
你可以按任意顺序重复任意次数以下三种操作:
- 你自己移动 $1$ 个单位长度。此操作的成本为 $C$。
- 选择一个商人,让选定的商人移动 $1$ 个单位长度。此操作的成本为 $D$。
- 选择一个商人,设选定的商人为商人 $i$。如果你和商人 $i$ 所在的坐标相同,并且你还没有从商人 $i$ 那里收到物品,则从商人 $i$ 那里接收物品 $i$。否则,不执行任何操作。此操作的成本为 $0$。
请找出达成目标所需的最小总成本。
此外,请找出在最小化达成目标所需总成本时,可以作为从每个商人处接收物品的坐标的一种可能方案。
输入格式
输入按以下格式从标准输入给出。
> $N$ $C$ $D$
> $X_1$ $X_2$ $\ldots$ $X_N$
输出格式
输出 $2$ 行。
第 $1$ 行输出达成目标所需的最小总成本。
第 $2$ 行按顺序输出 $N$ 个整数 $A_1, A_2, \ldots, A_N$,以空格分隔。要求存在一个操作序列,使得在该操作序列中同时满足以下条件:
- 已达成目标,并且在达成目标的条件下,总成本是最小的。
- 对于所有满足 $1 \leq i \leq N$ 的整数 $i$,你是在坐标 $A_i$ 从商人 $i$ 处接收物品的。
说明/提示
**「数据范围」**
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq C, D \leq 10^5$
- $-10^5 \leq X_i \leq 10^5$
- 输入的所有值均为整数
**「样例 1 解释」**
例如,通过如下操作,可以使总成本为 $10$ 并达成目标。
- 让商人 $1$ 从坐标 $1$ 移动到坐标 $0$。此操作的成本为 $3$。
- 让商人 $2$ 从坐标 $-1$ 移动到坐标 $0$。此操作的成本为 $3$。
- 从商人 $1$ 处接收物品 $1$。此操作的成本为 $0$。
- 从商人 $2$ 处接收物品 $2$。此操作的成本为 $0$。
- 你从坐标 $0$ 移动到坐标 $1$。此操作的成本为 $2$。
- 你从坐标 $1$ 移动到坐标 $2$。此操作的成本为 $2$。
- 从商人 $3$ 处接收物品 $3$。此操作的成本为 $0$。
无法以低于 $10$ 的总成本达成目标。