兔子的舞蹈配对
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
【问题背景】
兔年开学典礼上,兔王准备组织一场别开生面的红白兔子交谊舞。
【问题描述】
有 只红兔子和 只白兔子(满足 )分别站在一条笔直的山路上。我们用一个正整数 表示第 只红兔子所处的位置,用一个正整数 表示第 棵大树(也就是第 只白兔子)所处的位置。所有位置互不相同。
兔王要求:每只红兔子必须与一只白兔子进行配对。由于有些白兔子可能会落单,因此最多会有 只白兔子不能参与舞蹈。
为了保证舞蹈的秩序,配对必须满足以下两个条件:
- 防交叉原则:如果红兔子 匹配了白兔子 ,红兔子 匹配了白兔子 ,且 ,则必须满足 (即连线不能交叉)。
- 距离限制原则:为了不让兔子们跑得太远,每一对配对的红白兔子之间的距离 不能超过 。
在满足上述条件的配对方案中,请编程计算所有配对兔子之间距离之和的最小值。如果不存在任何合法的配对方案,则输出 -1。
【输入格式】
输入文件为 dance.in。
第一行包含三个正整数 、 和 ,分别表示红兔子的数量、白兔子的数量以及最大配对距离。
第二行包含 个正整数,第 个数表示红兔子所在的位置 。
第三行包含 个正整数,第 个数表示白兔子所在的位置 。
【输出格式】
输出文件为 dance.out。
输出一行一个整数,表示所有配对兔子之间距离之和的最小值。若无解输出 -1。
【输入输出样例 1】
输入 (dance.in)
3 4 5
1 4 5
3 8 9 10
输出 (dance.out)
10
【数据范围与提示】
- 对于 30% 的数据:,,,。
- 对于 60% 的数据:,。
- 对于 100% 的数据:,,。
- 提示:本题有 128MB 的内存限制,请关注空间开销。