问题 5121 --直线运输

5121: 直线运输

题目描述

给定一个正整数 $n$,表示一个国家的城市数量。再给定一列整数 $a_1, a_2, \cdots, a_n$,表示每个城市生产或者消费物资的数量,正数表示生产数量,负数表示消费数量。输入数据保证生产总量和消费总量是相等的,即 $a_1+a_2+\cdots+a_n=0$。 这些物资可以从一个城市搬运到另一个城市,一次搬运必须在两个编号相邻的城市间进行,若搬运一个单位数量的物资到一个相邻的城市,将产生一个单位的工作量。请设计一个方案,使得所有物资都从生产城市搬运至消费城市,且每个消费城市需要的物资数量都能得到满足,且搬运的总工作量达到最小。

输入

第一行:单个整数表示 $n$。 第二行:$n$ 个整数表示 $a_1, a_2, \cdots, a_n$。

输出

单个整数:表示最优运输方案产生的最少工作总量。

样例输入输出

输入#1 复制
4
-10 10 20 -20
输出#1 复制
30

提示

+ 对于 $30\%$ 的数据,$1\leq n\leq 10$; + 对于 $60\%$ 的数据,$1\leq n\leq 100$; + 对于 $100\%$ 的数据,$1\leq n\leq 100000$,$-100000\leq a_i\leq 100000$;
序号 标题 作者 发表时间 费用 订购数 操作