有若干个村庄,有的村庄买酒有的村庄卖酒,运k单位的酒去邻近村庄要k单位的劳动力,问最少需要多少劳动力。
考虑第一个村庄,他的需求肯定是右边的村庄解决的(买进or卖出)需要的劳动力就是abs(a1)。然后把问题变成村庄2-n运酒。村庄2的需求变为a1+a2,然后重复加劳动力的过程。
AC代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
int main()
{
int n;
while(cin>>n&&n)
{
long long ans=0,a,last=0;
for(int i=0;i<n;i++)
{
cin>>a;
ans+=abs(last);
last+=a;
}
cout<<ans<<endl;
}
return 0;
}