之前自己写了个超级麻烦的代码,思路是对的,但是代码太乱了,导致一直WA。
这题思路就是扫描吧,如果当前last不是0,那就一直要往下传。
<pre name="code" class="cpp">#include<cstdio>
#include<cmath>
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define ss(x) scanf("%d",&x)
long long abs(long long x) {return x>0?x:-x;}
int main()
{
int n,x;
while(true)
{
ss(n);if(n==0) break;
long long ans=0,last=0;
rep(i,0,n){
ss(x);
ans+=abs(last);
last+=x;
}
printf("%lld\n",ans);
}
return 0;
}