qb#P10025. 城市散步与咖啡印章
城市散步与咖啡印章
背景
在一座叫做「栀子城」的城市里,有一条很长很长的步行街。 这条街从西到东是一条完全笔直的路,路边开满了风格各异的咖啡馆:
- 第 家咖啡馆位于距离街道最西端 毫米处。
- 所有咖啡馆的位置都不相同,并且从西到东依次为 。
你最近迷上了收集咖啡杯印章。每家咖啡馆都愿意在你的纸杯上盖一个独特的小印章。 你走路的速度是 每秒 1 毫米,在某家咖啡馆门口停下、递杯子、盖章都可以看作是 不花时间 的(店员们都超高效)。
这天,好友给你准备了一张「咖啡散步券」: 只要你在一条散步路线中,从不同的咖啡馆里 收集到至少 个印章,她就请你喝一杯限定口味的拿铁。 一旦你收集够 个印章,就可以立刻打车回家,不需要再多走一步。
不过,好友还没想好在哪个路口把你放下车,于是她列出了 种可能的「下车点」方案:
- 在第 种方案中,她会把你放在距离街道最西端 毫米处。
- 这个位置不一定刚好有咖啡馆,可能正好在两家店之间的路上。
对每一种下车方案,你都想知道: 从这个起点出发,最少需要走多少秒,才能收集到至少 个不同咖啡馆的印章?
你只能在这条直路上来回走动,不能瞬移,也不能走侧路。 你可以往任意方向走,随时掉头。 当你拿到第 个印章的那一刻,时间就停止记秒,你就不再继续前进。
请你帮自己算出,在每一种下车方案下,所需的最少时间。
输入格式
输入共三行:
-
第一行包含三个整数
- :咖啡馆的数量;
- :你至少要收集的印章数量;
- :好友给出的不同下车方案数量。
-
第二行包含 个整数
其中第 个数表示第 家咖啡馆距离步行街最西端的距离(单位:毫厘),满足
-
第三行包含 个整数
其中第 个数表示在第 种方案中,你被放下的位置(单位:毫厘),满足
你从位置 出发,行走速度为 1 毫米/秒。
输出格式
输出一行,包含 个整数,第 个整数表示: 在下车位置为 的方案中,为了收集到至少 个不同咖啡馆的印章,你至少需要花多少秒走路。
整数之间用一个空格隔开。
样例
样例输入 1
3 2 3
1 4 6
0 5 2
样例输出 1
4 3 4
样例输入 2
4 4 2
3 4 6 8
3 6
样例输出 2
5 7
数据范围与子任务
对所有测试数据,都保证:
- ,并且
子任务 1(10 分)
- 限制:,。
子任务 2(10 分)
- 限制:。
子任务 3(20 分)
- 限制:。
子任务 4(60 分)
- 无额外限制。