8-5 Wine trading in Gergovia Gergovia的酒交易 uva11054

等价转换思维题

题意: 直线上有n(2<=n<=100000)个等距的村庄  每个村庄要么买酒 要么卖酒  设第i个村庄对酒的需求量为ai  绝对值小于一千  其中ai大于0表示买酒   小于0表示卖酒   所有村庄供需平衡  

把k个单位的酒从一个村庄运到相邻的村庄需要k个单位的劳动力   计算最少需要多少劳动力可以满足所有村庄的需要求

这种较大数据求和的题目 sum一定要longlong!!!!

#include<bits/stdc++.h>
using namespace std;
#define N 100001
int a[N];
int main()
{
   int n;
   while(cin>>n,n)
   {
       for(int i=1;i<=n;i++)
          scanf("%d",&a[i]);
       long long sum=0;
       for(int i=1;i<=n-1;i++)
       {
            a[i+1]+=a[i];
            sum+=abs(a[i]); 
       }
       printf("%lld\n",sum);
   }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/bxd123/p/10417557.html