rustgym 0.2.0

rustgym solutions
Documentation
// struct Solution;

// impl Solution {
//     fn sort_items(n: i32, m: i32, group: Vec<i32>, before_items: Vec<Vec<i32>>) -> Vec<i32> {
//         let n = n as usize;
//         let m = m as usize;
//         let mut k = m;
//         let mut new_group = vec![];
//         for i in 0..n {
//             if group[i] == -1 {
//                 new_group.push(k);
//                 k += 1;
//             } else {
//                 new_group.push(group[i] as usize);
//             }
//         }

//         let mut before_items: Vec<Vec<usize>> = before_items
//             .into_iter()
//             .map(|v| v.into_iter().map(|i| i as usize).collect())
//             .collect();
//         let mut groups = vec![vec![]];
//         for i in 0..n {
//             let g = new_group[i];
//             groups[g].push(i);
//         }
//         let mut res = vec![];

//         if !Self::topological_sort(k, n, &new_group, &groups, &before_items, &mut res) {
//             return vec![];
//         }

//         res
//     }

//     fn topological_sort(
//         k: usize,
//         n: usize,
//         group: &[usize],
//         groups: &[Vec<usize>],
//         before_items: &[Vec<usize>],
//         stack: &mut Vec,
//     ) -> bool {
//     }
// }