luogu#P10712. [NOISG2024 Prelim] Explosives

[NOISG2024 Prelim] Explosives

题目背景

翻译自 NOI SG 2024 Prelim E.Explosives

题目描述

你是一名运送炸弹的卡车司机。

nn 座工厂(生产炸弹)和 nn 座矿井(需要炸弹)排列在一条直线上。第 ii 座工厂的坐标为 aia_i,第 jj 座矿井的坐标为 bjb_j。并且,所有 aia_ibjb_j 都均不相等。

你今天需要在每一座工厂各领取一个炸弹,并将每一个炸弹送到某一个矿井中。初始时,你的坐标为 00。为了完成此任务,你可以进行以下两种操作:

  • pickup(x):从你当前的位置驾驶卡车到坐落在 xx 的工厂。执行这次操作需要同时满足以下两个条件:

    • 有一个 ii,满足 x=aix=a_i

    • 你的卡车最多装了 c1c-1 个炸弹。

  • offload(x):从你当前的位置驾驶卡车到坐落在 xx 的矿井。执行这次操作需要同时满足以下两个条件:

    • 有一个 jj,满足 x=bjx=b_j

    • 你的卡车最少装了 11 个炸弹。

由于炸弹十分危险,所以在你的卡车上需要一名安全员。如果你从点 xx 到点 yy,且车上装有炸弹,那么你需要付给安全员 xy|x-y| 元。如果车上没有炸药,则你不需要支付任何费用。

请求出在花费最小的情况下的操作序列。

输入格式

第一行,两个整数 n,cn,c

第二行,一行 nn 个整数,表示 aa

第三行,一行 nn 个整数,表示 bb

输出格式

第一行,一个整数表示最小花费。

第二行,输出 2n2n 个整数,表示你访问的工厂和矿井坐标,按照访问顺序输出。

例如你执行了四次操作: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 解释】

按照顺序访问工厂 33,矿井 22,工厂 22,工厂 11,矿井 11,矿井 33,即可得到最小值 77

以此样例为例,如果你只输出正确的最小代价 77,你将可以得到该测试点 50%50\% 的分数。

【数据范围】

Subtask\text{Subtask} 分值 特殊性质
00 样例
11 1616 c=1c=1
22 2222 ai5000,bi>5000a_i\le 5000,b_i>5000
33 6262

对于 100%100\% 的数据,1n,c1000,1ai,bi100001 \le n,c \le 1000,1 \le a_i,b_i \le 10000