#H1028. 能量消耗
能量消耗
题目描述
在一维数轴上有只精灵以及个能量球。作为这些精灵的主人,你发现精灵们都因能量用尽而无法移动。精灵可以使用能量球来补充能量。每个能量球都需要花费一定的金币来开启,当一个能量球被开启后,它可以在短时间内给任意数量的精灵提供能量。由于精灵们的能量都用尽了,你只能通过花费金币来将它们传送到指定位置,并且你只能向右传送每个精灵(即传送到坐标更大的位置)。将某个精灵从坐标传送到坐标()需要花费的金币数量为(也就是说,所需的金币为两点的距离)。
现在你需要开启一些能量球,并将每个精灵都传送到某个开启的能量球的坐标上,从而让这只精灵都可以进行能量补充。请问你所需花费的金币数最少是多少?注意,多个精灵可以使用同一个能量球。
数据保证每个精灵右边都至少一个能量球。即不存在无解。
输入格式
第一行一个正整数,表示精灵的数量。
第二行是个用空格隔开的整数,其中表示第个精灵所处的坐标。
第三行是一个正整数,表示能量球的数量。
第四行是个用空格隔开的整数,其中表示第个能量球所处的坐标。
第五行是个用空格隔开的正整数,其中表示开启第个能量球所需的金币。
数据保证以及。
输出格式
一行一个正整数,表示所需花费的最少金币数。
3
-3 -2 4
3
-1 1 5
6 3 4
14
样例解释 #1
开启第1个(坐标为-1)和第3个(坐标为5)能量球,花费6+4=10;
将坐标为-3和-2的精灵传送到坐标为-1的能量球,花费2+1=3;
将坐标为4的精灵传送到坐标为5的能量球,花费1;
总花费为10+3+1=14。可以证明没有花费更少的方案。
数据范围
共10个测试点,每个点10分。
对于30%的数据有:
对于80%的数据有:
对于全部数据有: