#H1028. 能量消耗

能量消耗

题目描述

在一维数轴上有nn只精灵以及mm个能量球。作为这些精灵的主人,你发现精灵们都因能量用尽而无法移动。精灵可以使用能量球来补充能量。每个能量球都需要花费一定的金币来开启,当一个能量球被开启后,它可以在短时间内给任意数量的精灵提供能量。由于精灵们的能量都用尽了,你只能通过花费金币来将它们传送到指定位置,并且你只能向右传送每个精灵(即传送到坐标更大的位置)。将某个精灵从坐标xx传送到坐标yyy>xy>x)需要花费的金币数量为yxy-x(也就是说,所需的金币为两点的距离)。

现在你需要开启一些能量球,并将每个精灵都传送到某个开启的能量球的坐标上,从而让这nn只精灵都可以进行能量补充。请问你所需花费的金币数最少是多少?注意,多个精灵可以使用同一个能量球。

数据保证每个精灵右边都至少一个能量球。即不存在无解。

输入格式

第一行一个正整数nn,表示精灵的数量。

第二行是nn个用空格隔开的整数a1,,ana_1,…,a_n,其中aia_i表示第ii个精灵所处的坐标。

第三行是一个正整数mm,表示能量球的数量。

第四行是mm个用空格隔开的整数b1,,bmb_1,…,b_m,其中bib_i表示第ii个能量球所处的坐标。

第五行是mm个用空格隔开的正整数c1,,cmc_1,…,c_m,其中cic_i表示开启第ii个能量球所需的金币。

数据保证a1a2ana_1≤a_2≤⋯≤a_n以及b1b2bmb_1≤b_2≤⋯≤b_m

输出格式

一行一个正整数,表示所需花费的最少金币数。

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%的数据有:1n,m20,0ai,bi100,1ci10001≤n,m≤20,0≤|a_i |,|b_i |≤100,1≤c_i≤1000

对于80%的数据有:1n,m100,0ai,bi2000,1ci1051≤n,m≤100,0≤|a_i |,|b_i |≤2000,1≤c_i≤10^5

对于全部数据有:1n,m1000,0ai,bi105,1ci1091≤n,m≤1000,0≤|a_i |,|b_i |≤10^5,1≤c_i≤10^9