本题要求从第 1 个能源站出发,依次经过所有 n 个站到达终点,需要行驶 n−1 次,每次消耗 1 单位能量。
可以在任意站购买能量,但若能量不是在购买后立即使用,则每多携带一站就需要支付维护费用。
具体来说,若在第 j 个站购买了用于第 i−1 到第 i 站的行驶的能量(i>j),该单位能量的总花费为 pj+(i−j),其中 pj 是购买价格,i−j 是沿途的维护费用。
为了方便处理,我们将站点按 0 到 n−1 下标编号(分别对应题面中的第 1 到第 n 站),价格数组记为 p[0…n−1]。
你驾驶一辆能源车沿着一条直线依次经过 n 个能源站,从第 1 个站出发,目标是到达第 n 个站。能源车每从一个站行驶到相邻的下一站需要消耗恰好 1 单位能量。你可以在任意能源站购买任意数量的能量,第 i 个站的单位能量价格为 pi。由于能量存储不稳定,若当前携带超过 1 单位能量,每多出 1 单位能量并且行驶一站,就需要支付 1 单位的维护费用。换句话说,如果在第 j 个站购买了若干能量,将其中的 1 单位能量用于从第 i−1 个站到第 i 个站的行驶(i>j),该单位能量的总花费等于 pj 加上沿途的维护费用 i−j。你希望合理规划在哪些站购买能量,使得总花费最小。请计算从起点到达终点所需的最小总花费。
能源站的数量 n 满足 1≤n≤105,每个站的单价 pi 满足 1≤pi≤109。
第一行包含一个整数 n,表示能源站的数量。 第二行包含 n 个整数 p1,p2,…,pn,依次表示每个能源站的单位能量价格。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.