题目给定了一个机房的布局,其中有多个机柜,每个机柜有一定数量的服务器需求,并且所有的机柜都排成一条直线。我们需要计算将所有服务器从原点搬运到机柜所需的最小距离。每次搬运时,小明可以携带最多 k 台服务器,并且每次搬运完后需要返回原点。
机房中共有n个机柜位于一条直线上,第i个机柜的位置用坐标xi表示,0≤i≤n−1.
现有一批服务器需搬运到n个机柜处,第i个机柜需要mi台服务器。
小明负责搬运工作,小明和所有服务器最初都位于原点0,小明一次最多可以搬运k台服务器。小明必须从原点提取所需数量的服务器,将它们搬运到各自的机柜,然后返回原点提取下一批服务器。
请计算将所有服务器搬运到机柜所需的最小距离。搬运完所有服务器后,
小明无需返回原点。
第一行包含两个整数n和k,1≤n≤105,1≤k≤105
第二行包含n个整数,表示n个机柜的坐标 x0,x1,...xn−1,−109≤x≤109
第三行包含n的整数,表示n个机柜所需的服务器数量m0,m1,…mn−1,1≤mi≤10
将所有服务器搬运到机柜所需的最小距离。
输入
4 1
1 3 2 4
1 1 1 1
输出
16
说明
小明每次只能搬1台服务器,因为每次搬运都需要返回原点,小明的最短搬运路径为0→1→0→2→0→3→0→4,将每段路径相加得到 1+1+2+2+3+3+4=16
输入
5 3
-5 -10 -7 6 8
1 1 1 1 2
输出
26
说明
小明每次可以搬3台服务器,最短搬运路径为0→6→8→0→(−5)→(−7)→(−10),将每段路径相加得到6+2+8+5+2+3=26