rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn car_pooling(trips: Vec<Vec<i32>>, capacity: i32) -> bool {
        let mut pairs: Vec<(i32, i32)> = vec![];
        for trip in trips {
            pairs.push((trip[1], trip[0]));
            pairs.push((trip[2], -trip[0]));
        }
        pairs.sort_unstable();
        let mut max = 0;
        let mut count = 0;
        for pair in pairs {
            count += pair.1;
            max = max.max(count);
        }
        max <= capacity
    }
}

#[test]
fn test() {
    let trips = vec_vec_i32![[2, 1, 5], [3, 3, 7]];
    let capacity = 4;
    let res = false;
    assert_eq!(Solution::car_pooling(trips, capacity), res);
    let trips = vec_vec_i32![[2, 1, 5], [3, 3, 7]];
    let capacity = 5;
    let res = true;
    assert_eq!(Solution::car_pooling(trips, capacity), res);
    let trips = vec_vec_i32![[2, 1, 5], [3, 5, 7]];
    let capacity = 3;
    let res = true;
    assert_eq!(Solution::car_pooling(trips, capacity), res);
    let trips = vec_vec_i32![[3, 2, 7], [3, 7, 9], [8, 3, 9]];
    let capacity = 11;
    let res = true;
    assert_eq!(Solution::car_pooling(trips, capacity), res);
}