知识点:不详
看别人分类是贪心题才做的,但是感觉是一个思维题,我的思路就是假如都把就搬到最右边,那么正数过去要给钱,负数过去要收钱,因为本题的数之和能够抵消,反正感觉就是这个样子做的,但是向右扫描的时候要累加,这个也是凭直觉的。。。
#include#define fi first #define se second #define pb push_back #define mk make_pair #define sz(x) ((int) (x).size()) #define all(x) (x).begin(), (x).end() using namespace std; typedef long long ll; typedef vector vi; typedef pair pa; const int N = 1e5 + 5; int a[N]; int main() { int n; while (cin >> n && n) { for (int i = 0; i < n; i++) cin >> a[i]; ll ans = 0; for (int i = 1; i < n; i++) { ans += abs(a[i - 1]); a[i] += a[i - 1]; } cout << ans << endl; } return 0; }



