#P1006. 建学校

    ID: 52 传统题 文件IO:school 1000ms 256MiB 尝试: 72 已通过: 9 难度: 8 上传者: 标签>其他二分查找中位数前缀和

建学校

描述

BobBob 所在的小镇有一条笔直的道路,所有居民都住在道路旁,镇长正在筹款建学校。

镇长告诉 BobBob 如果筹款 20002000 万以上,那么就可以建 22 所学校 ;

如果筹到 10001000 万以上 19991999 万以下,就建 11 所学校;

如果筹款低于 10001000 万,就无法建学校。

镇长告诉 BobBob 他筹到的钱数 xx 万元,以及相邻两户居民之间的距离,镇长想知道在他筹到钱数 xx 下,居民让孩子去距离家最近的学校读书,学校如何选址,所有孩子走路的路程和最小。(假设所有家庭现在或者未来都会送孩子去上学,每个家庭按一个小孩算)

(学校可以与居民点重合,也可以不重合,重合时就在居民点旁边建学校,由于距离很接近,忽略掉)

输入格式

第一行两个整数 xx nn,中间用空格隔开,xx 表示镇长筹到的钱数,nn 表示小镇居民房屋数。

第二行 n1n-1 个整数,第 ii 个整数表示第 ii 户居民家到一下户居民家 i+1i+1 的距离 lil_i

输出格式

一个整数,表示所有孩子去离家最近的学校最小的路程和。

如果筹到的钱数低于 10001000 万,那么无法建校,输出 1-1

样例

1000 5
1 2 3 4
15

样例解释

只能建 11 所学校,建在第 33 户居民家旁边(与其重合),居民去往学校的距离和3+2+0+3+7=153+2+0+3+7=15 ,距离和最小。

2000 5
10 2 30 400
44

限制

10%10\% 的测试数据: 0x1030 \leq x \leq 10^31n1031 \leq n \leq 10^3;

30%30\% 的测试数据: 0x1040 \leq x \leq 10^41n1041 \leq n \leq 10^4;

100%100\% 的测试数据: 0x1040 \leq x \leq 10^41n2×1051li1031 \leq n \leq 2 \times 10^5,1 \leq l_i \leq 10^3;