以前看这道题目的时候就觉得难,
还做的导致time limited。。
看了某人的方法以后,才知道怎么做,
数学好的人还真有优势。我要加油,加油
思想如下:
从第一户人家开始,不管其是供还是需x,都必须在第一户和第二户之间搬运x单元的酒,
此时合并这两户人家,假设其需或供y单元的酒,
则再与第三户人家比较时候,要搬运y单元的酒,
如此下去,直至第n户人家】
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int n;
__int64 x,rest,sum;
while(scanf("%d",&n),n)
{
rest=0;sum=0;
while(n--)
{
scanf("%I64d",&x);
rest+=x;
sum+=abs(rest);
}
printf("%I64d\n",sum);
}
return 0;
}