use proconio::input; fn dfs(digits: &Vec, i: usize, sum: u64, counter: u64) -> u64{ if i < digits.len(){ dfs(digits, i + 1, sum + counter, digits[i]) + dfs(digits, i + 1, sum, counter * 10 + digits[i]) } else{ sum + counter } } fn main() { input!{ s: String, }; let ns : Vec = s.chars().map(|c| u64::from(c.to_digit(10).unwrap())).collect(); let result = dfs(&ns, 1, 0, ns[0]); println!("{}", {result}); }