UVA_11054
这是一个贪心的题目,我们可以假想第i个人总是与第i+1个人来进行交易来满足i的要求,这样每个人就都是与其最近的人进行交易,从而产生了最优解。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
long long int a[100010];
int main()
{
int i,j,k,n;
long long int sum;
while(1)
{
scanf("%d",&n);
if(n==0)
break;
for(i=0;i<n;i++)
scanf("%I64d",&a[i]);
sum=0;
for(i=0;i<n-1;i++)
{
sum+=abs(a[i]);
a[i+1]+=a[i];
}
printf("%lld\n",sum);
}
return 0;
}