[ZJOI2010]BASE 基站选址
题号:NC20490
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有N个村庄坐落在一条直线上,第i(i > 1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就成它被覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi。现在的问题是,选择基站的位置,使得总费用最小。 

输入描述:

输入数据 (base.in) 输入文件的第一行包含两个整数N,K,含义如上所述。 
第二行包含N-1个整数,分别表示D2,D3,…,DN ,这N-1个数是递增的。
第三行包含N个整数,表示C1,C2,…CN。 
第四行包含N个整数,表示S1,S2,…,SN。 
第五行包含N个整数,表示W1,W2,…,WN

输出描述:

输出文件中仅包含一个整数,表示最小的总费用。
示例1

输入

复制
3 2 1 2 2 3 2 1 1 0 10 20 30

输出

复制
4

备注:

40%的数据中,N<500;
100%的数据中,K<=N,K<=100,N<=20,000,Di<=1000000000,Ci<=10000,Si<=1000000000,Wi<=10000。