题目:点击打开题目链接
思路:考虑第一个村庄,如果第一个村庄需要买酒,那么a1>0,那么一定有劳动力从第二个村庄向第一个村庄搬酒,这些酒可能是第二个村庄生产的,也可能是从其他村庄搬过来的,但这一布我们只考虑这一步的劳动力需求。于是,在第二个村庄,我们可以忽略第一个,视为只有编号为2-n的村庄,第二个村庄的需求转化为a1+a2,以此类推
AC代码:
1 #include <iostream> 2 #include <cstdlib> 3 4 using namespace std; 5 6 int main() 7 { 8 int n; 9 while(cin >> n && n) { 10 long long ans = 0, a, last = 0; 11 for(int i = 0; i < n; i++) { 12 cin >> a; 13 ans += abs(last); 14 last += a; 15 } 16 cout << ans << endl; 17 } 18 return 0; 19 }