rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn min_distance(
        _: i32,
        _: i32,
        tree: Vec<i32>,
        squirrel: Vec<i32>,
        nuts: Vec<Vec<i32>>,
    ) -> i32 {
        let mut sum = 0;
        let mut diff = std::i32::MIN;
        for nut in nuts {
            let t = Self::dist(&nut, &tree);
            let s = Self::dist(&nut, &squirrel);
            sum += t * 2;
            diff = diff.max(t - s);
        }
        sum - diff
    }

    fn dist(a: &[i32], b: &[i32]) -> i32 {
        (a[0] - b[0]).abs() + (a[1] - b[1]).abs()
    }
}

#[test]
fn test() {
    let tree = vec![2, 2];
    let squirrle = vec![4, 4];
    let nuts = vec_vec_i32![[3, 0], [2, 5]];
    let res = 12;
    assert_eq!(Solution::min_distance(0, 0, tree, squirrle, nuts), res);
}