rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn max_satisfaction(mut satisfaction: Vec<i32>) -> i32 {
        satisfaction.sort_unstable();
        let n = satisfaction.len();
        let mut total = 0;
        let mut res = 0;
        for i in (0..n).rev() {
            if satisfaction[i] + total < 0 {
                break;
            } else {
                total += satisfaction[i];
                res += total;
            }
        }
        res
    }
}

#[test]
fn test() {
    let satisfaction = vec![-1, -8, 0, 5, -9];
    let res = 14;
    assert_eq!(Solution::max_satisfaction(satisfaction), res);
    let satisfaction = vec![4, 3, 2];
    let res = 20;
    assert_eq!(Solution::max_satisfaction(satisfaction), res);
    let satisfaction = vec![-1, -4, -5];
    let res = 0;
    assert_eq!(Solution::max_satisfaction(satisfaction), res);
    let satisfaction = vec![-2, 5, -1, 0, 3, -3];
    let res = 35;
    assert_eq!(Solution::max_satisfaction(satisfaction), res);
}