题目背景
乌龟 Syrup 经常在他家旁边的池塘里游泳。这个池塘是由很久以前的冰川运动形成的,呈狭长直线状,水面平静,适合双向游泳。
题目描述
今天,Syrup 像往常一样游泳时,发现了一簇绿点——正在萌发的藻类孢子。经过暴雨冲刷,富含营养的土壤流入池塘,为藻类提供了大量养分,导致它们以惊人的速度生长。如果不加以控制,这些藻类会遮挡阳光,破坏水下生态平衡。
幸运的是,Syrup 有一个简单有效的解决方案——吃掉它们。他已经识别出池塘中 N 个土壤流失点,标号为 1 到 N,并记下了它们之间的距离 Di(第 i 点到第 i+1 点之间的距离为 Di)。目前,Syrup 位于第 K 个点,并从这里开始消灭藻类。
池塘中的每个点初始有 0 条藻类,并且每秒会增加 1 条藻类,直到 Syrup 到达该点并吃掉所有藻类。Syrup 需要选择一个方向,沿着池塘游泳,并依次吃掉遇到的所有藻类。为了让藻类不至于变得太难吃,他希望尽可能减少吃下的藻类总数。
你的任务是计算 Syrup 吃下的最少藻类总数。
输入格式
- 第一行包含两个整数 N 和 K,分别表示池塘中的土壤流失点数量和 Syrup 的起始位置。
- 第二行包含 N−1 个整数 D1,D2,…,DN−1,表示相邻流失点之间的距离。
输出格式
输出一个整数,表示 Syrup 吃下的最少藻类总数。
7 3
5 2 4 2 2 5
86
9 5
4 3 2 1 1 3 6 10
129
6 4
1 1 1 1 1
21
提示
【样例解释】
- 对于样例 1,最优路径是按顺序访问点 3→2→4→5→6→7→1,总共吃掉 0+2+8+10+12+17+37=86 条藻类。
- 对于样例 2,最优路径是按顺序访问点 5→6→4→3→2→1→7→8→9,总共吃掉 0+1+3+5+8+12+26+32+42=129 条藻类。
- 对于样例 3,最优路径是按顺序访问点 4→3→2→1→5→6,总共吃掉 0+1+2+3+7+8=21 条藻类。
【数据范围】
- 2≤N≤3×105
- 1≤K≤N
- 1≤Di≤106
子任务编号 |
分值 |
额外限制条件 |
1 |
7 |
N≤100 |
2 |
11 |
N≤2000 |
3 |
10 |
1≤K≤min(N,20) |
4 |
6 |
Di=1 |
5 |
12 |
1≤K≤min(N,2000) 且 Di≥Di+1(对所有 i 满足 i≡0(mod100)) |
6 |
25 |
1≤K≤min(N,2000) |
7 |
29 |
无额外限制 |