问题 1166 --【提高】建学校

1166: 【提高】建学校

题目描述

汶川大地震发生已经有两年了。地震灾区的重建工作有许多工作要做,其中学校的重建被放在了重要的议事日程上: 在一条新建的公路两旁,有n个村庄,编号为1,2,…,n。(3≤n≤100),每个村庄有一定数量的小学生,村庄之间的距离也已知。例如n=3时,下图给出了三个村庄的相关情况: 村庄1的学生数24,村庄2的学生数18,村庄3的学生数31。 村庄1和村庄2之间距离为10, 村庄2和村庄3之间的距离为8。    10  8 ①————②————③    24   18  31 现在要在村庄中建k个学校(1≤k≤45),比如上图中k=2时,建二个学校,此时有三种方案: 村庄1 村庄2 村庄3学生走到村庄2, 学生走的距离和为31*8=248 村庄1 村庄3 村庄2学生走到村庄3(就近入学),学生走的距离和为18*8=144 村庄2 村庄3 此时村庄1的学生走到村庄2的距离和为24*10=240 显然,方案2最好。    当给出村庄数n,每个村庄的学生数、村庄之间的距离以及要建的学校数k之后,求出 合理的建学校的方案,使学生走的距离和为最少。

输入

第一行2个整数,表示村庄数n,学校数k 第二行n个整数,表示每个村庄学生数(0<每个村庄学生数≤100 ) 第三行n-1个数,分别表示村庄i到村庄i+1之间距离(1≤距离≤100,1≤i≤n-1)

输出

一个整数,即学生走的距离和的最小值

样例输入输出

输入#1 复制
3 2
24 18 31
10 8
输出#1 复制
144

提示

序号 标题 作者 发表时间 费用 订购数 操作