题目链接:https://vjudge.net/problem/UVA-11054
题目大意:给你一行数,让你移动每个点的数值然后让所有点的值都为0。
题目分析:按照顺序来,当前的点不管多了还是少了,它都会肯定会影响到下一个点,要么分给下一个点要么从下一个点抽出一部分让当前的点变为0;
题目做法:采用贪心法,On 扫描一遍,将每一个点处理为0,要么给下一个点,要么借下一个点。
学到的东西:思路思路思路!!!分析问题的思路。
代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
int a[100100];
int x;while(cin>>x&&x){
ll ans=0,last=0;
for(int i=0;i<x;i++){
int a;cin>>a;
ans+=abs(last);
last+=a;
}
cout<<ans<<endl;
}
}