37 lines
820 B
Rust
Executable File
37 lines
820 B
Rust
Executable File
use std::io;
|
|
|
|
fn main() -> io::Result<()> {
|
|
// read from stdin
|
|
let stdin = io::stdin();
|
|
let lines = stdin.lines();
|
|
|
|
let mut elves = Vec::new();
|
|
let mut c_sum = 0;
|
|
for line in lines {
|
|
let content = line.unwrap();
|
|
if content.is_empty() {
|
|
elves.push(c_sum);
|
|
c_sum = 0;
|
|
} else {
|
|
let new_val = match content.parse::<i32>() {
|
|
Ok(v) => v,
|
|
Err(_e) =>{ println!("Error parsing input"); 0 }
|
|
};
|
|
c_sum += new_val;
|
|
}
|
|
}
|
|
|
|
elves.sort();
|
|
elves.reverse();
|
|
let mut result = 0;
|
|
if elves.len() > 3 {
|
|
for n in 0..3 {
|
|
result += elves[n];
|
|
}
|
|
println!("{}", result);
|
|
} else {
|
|
println!("Not enough elves");
|
|
}
|
|
Ok(())
|
|
}
|