use std::io ; use itertools::Itertools ; fn main() { println!("Enter some integers separated by blanks!"); let mut inline : String = String::new( ) ; io::stdin( ).read_line( &mut inline ).unwrap( ) ; let numbers : Vec = inline.trim( ).split_whitespace( ).map( |s| s.parse::( ).unwrap( )).collect( ) ; let all_subsets : Vec> = numbers.into_iter( ).powerset( ). collect( ) ; let totals : Vec = all_subsets.into_iter( ).map( |v| v.iter( ). fold(0 , |acc , n| acc ^ n ) ).collect( ) ; println!("{}" , totals.into_iter( ).sum::( ) ) ; }