IT民工
加油!

因为最终都会满足每个人的要求。所以我们可以当作每个居民与他的邻居进行交易,将每次的交易额计算出来相加即可。

#include<cstdio>
#include<cstdlib>
#define MAXN 100010

int a[MAXN];
long long min, w;
int n;
int main()
{
while( scanf( "%d", &n), n)
{
for( int i = 0; i < n; i ++)
scanf( "%d", &a[i]);
min = w = 0;
for( int i = 0; i < n; i ++)
{
min += abs( w);
w += a[i];
}
printf( "%lld\n", min);
}
return 0;
}

 

posted on 2012-02-01 17:45  找回失去的  阅读(249)  评论(0)    收藏  举报