#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S max_L( S a,T b) {
return a>= b? a: b;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int maxSatisfaction( vector< int > & A) {
int i;
int now = 0 ;
int res = 0 ;
int N = A.size ( ) ;
sort( A.begin ( ) , A.end ( ) ) ;
for ( i= ( N) - 1 ; i>= ( 0 ) ; i-- ) {
now + = A[ i] ;
res + = max_L( 0 , now) ;
}
return res;
}
}
;
// cLay varsion 20200408-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int maxSatisfaction(vector<int>& A) {
// int now = 0, res = 0, N = A.size();
// sort(A.begin(), A.end());
// rrep(i,N){
// now += A[i];
// res += max(0, now);
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIG1heF9MKFMgYSxUIGIpewogIHJldHVybiBhPj1iP2E6YjsKfQojZGVmaW5lIG1haW4gZHVtbXlfbWFpbgppbnQgbWFpbigpewogIHJldHVybiAwOwp9CiN1bmRlZiBtYWluCmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBpbnQgbWF4U2F0aXNmYWN0aW9uKHZlY3RvcjxpbnQ+JiBBKXsKICAgIGludCBpOwogICAgaW50IG5vdyA9IDA7CiAgICBpbnQgcmVzID0gMDsKICAgIGludCBOID0gQS5zaXplKCk7CiAgICBzb3J0KEEuYmVnaW4oKSwgQS5lbmQoKSk7CiAgICBmb3IoaT0oTiktMTtpPj0oMCk7aS0tKXsKICAgICAgbm93ICs9IEFbaV07CiAgICAgIHJlcyArPW1heF9MKDAsIG5vdyk7CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDIwMDQwOC0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGludCBtYXhTYXRpc2ZhY3Rpb24odmVjdG9yPGludD4mIEEpIHsKLy8gICAgIGludCBub3cgPSAwLCByZXMgPSAwLCBOID0gQS5zaXplKCk7Ci8vICAgICBzb3J0KEEuYmVnaW4oKSwgQS5lbmQoKSk7Ci8vICAgICBycmVwKGksTil7Ci8vICAgICAgIG5vdyArPSBBW2ldOwovLyAgICAgICByZXMgKz0gbWF4KDAsIG5vdyk7Ci8vICAgICB9Ci8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK