分析一下题目。
无论运送方式是怎样的,对于第一个村庄,如果是需要酒,最终的情况一定是从第二个村庄运来a1的酒(可以想象把运送拆分为一步一步)。这样问题就等价与2~n个村庄,依此类推。同样如果卖酒依旧满足。
#include<iostream>
using namespace std;
int main()
{
int wine[100001];
int n = 1;
long long ans = 0;
while (cin >> n && n != 0) {
ans = 0;
for (int i = 0; i < n; i++)
cin >> wine[i];
for (int i = 0; i < n - 1; i++) {
ans += abs(wine[i]);
wine[i + 1] += wine[i];
}
cout << ans << endl;
}
return 0;
}