Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn f(v : &[&[u32]], cur: &mut Vec<u32>, r : &mut Vec<Vec<u32>>){
- if v.is_empty() {
- r.push(cur.clone());
- return;
- }
- let first = v[0];
- let others = &v[1..];
- for &x in first.iter() {
- cur.push(x);
- f(others,cur,r);
- cur.pop();
- }
- }
- fn g(v : &[&[u32]]) -> Vec<Vec<u32>> {
- let mut cur = vec![];
- let mut ret = vec![];
- f(v,&mut cur, &mut ret);
- ret
- }
- fn main() {
- let v = [&[1,2,3,4][..],&[5,6,7,8][..]];
- println!("FIRST {:#?}",g(&v));
- let v = [&[1,2,3,4][..],&[5,6,7,8][..],&[9,10,11,12][..]];
- println!("SECOND {:#?}",g(&v));
- let v = [&[1,2,3,4][..],&[5,6,7,8][..],&[9,10,11,12][..],&[13,14,15,16][..]];
- println!("THIRD {:#?}",g(&v));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement