Wine trading in Gergovia
Time Limit: 1000MS Memory limit: 65536K
题目描述
There is one problem, however: Transporting wine from one house to another results in work. Since all wines are equally good, the inhabitants of Gergovia don\'t care which persons they are doing trade with, they are only interested in selling or buying a specific amount of wine. They are clever enough to figure out a way of trading so that the overall amount of work needed for transports is minimized.
In this problem you are asked to reconstruct the trading during one day in Gergovia. For simplicity we will assume that the houses are built along a straight line with equal distance between adjacent houses. Transporting one bottle of wine from one house to an adjacent house results in one unit of work.
输入
The last test case is followed by a line containing 0.
输出
示例输入
5 5 -4 1 -3 1 6 -1000 -1000 -1000 1000 1000 1000 0
示例输出
9 9000
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[100001],i,n;
long long sum;
while(~scanf("%d",&n)&&n!=0)
{
sum=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]>0)
{
sum=sum+a[i];
a[i+1]=a[i+1]+a[i];
}
if(a[i]<0)
{
sum=sum-a[i];
a[i+1]=a[i+1]+a[i];
}
}
printf("%lld\n",sum);
}
}