#P10712. [NOISG2024 Prelim] Explosives
[NOISG2024 Prelim] Explosives
题目背景
翻译自 NOI SG 2024 Prelim E.Explosives。
题目描述
你是一名运送炸弹的卡车司机。
有 座工厂(生产炸弹)和 座矿井(需要炸弹)排列在一条直线上。第 座工厂的坐标为 ,第 座矿井的坐标为 。并且,所有 和 都均不相等。
你今天需要在每一座工厂各领取一个炸弹,并将每一个炸弹送到某一个矿井中。初始时,你的坐标为 。为了完成此任务,你可以进行以下两种操作:
-
pickup(x)
:从你当前的位置驾驶卡车到坐落在 的工厂。执行这次操作需要同时满足以下两个条件:-
有一个 ,满足 。
-
你的卡车最多装了 个炸弹。
-
-
offload(x)
:从你当前的位置驾驶卡车到坐落在 的矿井。执行这次操作需要同时满足以下两个条件:-
有一个 ,满足 。
-
你的卡车最少装了 个炸弹。
-
由于炸弹十分危险,所以在你的卡车上需要一名安全员。如果你从点 到点 ,且车上装有炸弹,那么你需要付给安全员 元。如果车上没有炸药,则你不需要支付任何费用。
请求出在花费最小的情况下的操作序列。
输入格式
第一行,两个整数 ;
第二行,一行 个整数,表示 。
第三行,一行 个整数,表示 。
输出格式
第一行,一个整数表示最小花费。
第二行,输出 个整数,表示你访问的工厂和矿井坐标,按照访问顺序输出。
例如你执行了四次操作:pickup(3)
,offload(5)
,pickup(6)
,offload(2)
,则你应该输出 3 5 6 2
。
3 2
12 14 4
9 5 8
7
4 5 14 12 9 8
提示
【样例 #1 解释】
按照顺序访问工厂 ,矿井 ,工厂 ,工厂 ,矿井 ,矿井 ,即可得到最小值 。
以此样例为例,如果你只输出正确的最小代价 ,你将可以得到该测试点 的分数。
【数据范围】
分值 | 特殊性质 | |
---|---|---|
样例 | ||
无 |
对于 的数据,。