一道思维题,主要用到的方法是思路转化。
首先考虑第一个村庄,首先他本身一定会用|a[1]|的劳动力
综上,我们通过扫描法来记录前几个村庄带给这个村庄的酒,累加劳动力就好了
#include<bits/stdc++.h>using namespace std;int n;int main(){ while(~scanf("%d",&n)&&n){ long long a,ans=0,last=0;//不开LL见祖宗 for(int i=1;i<=n;i++){ scanf("%lld",&a); ans+=abs(last);//取绝对值是因为劳动力为正 last+=a;//加上这一次的劳动力 } printf("%lld\n",ans); }}