解析
我们可以使用前缀和来做这道题目。
首先,我们可以全部遍历一遍。
如果是正数,那么就表示需要酒了。
如果是负数,那么就可以把酒卖出去,把绝对值加起来,即为答案。
做完了。
注意点
- 不开
long long
见祖宗。但其实只有ans
要开long long
,其他的均开int
即可。 - 记得换行。
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll; // ans 需开 long long
int n;
int a[100005];
int f[100005];
ll ans;
int main(){
while(cin>>n&&n){
ans=0;
for(int i=1;i<=n;i++){
cin>>a[i];
f[i]=f[i-1]+a[i]; // 前缀和
ans+=abs(f[i]);
}
cout<<ans<<endl; // 输出答案,记得换行
}
return 0;
}