diff --git a/solutions/rust/src/bin/149A.rs b/solutions/rust/src/bin/149A.rs new file mode 100644 index 0000000..f59f203 --- /dev/null +++ b/solutions/rust/src/bin/149A.rs @@ -0,0 +1,33 @@ +use std::io; + +fn main() { + let mut s = String::new(); + io::stdin().read_line(&mut s).unwrap(); + + let n = s.trim().parse::().unwrap(); + + let mut s = String::new(); + io::stdin().read_line(&mut s).unwrap(); + + let mut a: Vec = s.split_whitespace().map(|d| d.parse::().unwrap()).collect(); + + a.sort(); + a.reverse(); + + let mut count = 0; + let mut sum = 0; + + if a.iter().sum::() < n { + println!("-1"); + std::process::exit(0); + } + + for i in a { + if sum < n { + sum += i; + count += 1; + } + } + + println!("{}", count); +}