Files
contests/atcoder/beginner_contests/abc045/src/bin/c.rs

20 lines
475 B
Rust

use proconio::input;
fn dfs(digits: &Vec<u64>, 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<u64> = s.chars().map(|c| u64::from(c.to_digit(10).unwrap())).collect();
let result = dfs(&ns, 1, 0, ns[0]);
println!("{}", {result});
}