rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

const MOD: i64 = 1_000_000_007;

impl Solution {
    fn num_of_ways(n: i32) -> i32 {
        let n = n as usize;
        let mut a121: i64 = 6;
        let mut a123: i64 = 6;
        for _ in 1..n {
            let b121 = a121 * 3 + a123 * 2;
            let b123 = a121 * 2 + a123 * 2;
            a121 = b121 % MOD;
            a123 = b123 % MOD;
        }
        ((a121 + a123) % MOD) as i32
    }
}

#[test]
fn test() {
    let n = 1;
    let res = 12;
    assert_eq!(Solution::num_of_ways(n), res);
    let n = 2;
    let res = 54;
    assert_eq!(Solution::num_of_ways(n), res);
    let n = 7;
    let res = 106494;
    assert_eq!(Solution::num_of_ways(n), res);
    let n = 5000;
    let res = 30228214;
    assert_eq!(Solution::num_of_ways(n), res);
}