diff options
Diffstat (limited to '2020/day01/src')
-rw-r--r-- | 2020/day01/src/main.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/2020/day01/src/main.rs b/2020/day01/src/main.rs new file mode 100644 index 0000000..02a3151 --- /dev/null +++ b/2020/day01/src/main.rs @@ -0,0 +1,22 @@ +use std::fs; +use std::process; + +fn main() { + let raw = fs::read_to_string("input.txt").unwrap_or_else(|err| { + println!("Failed to open file. {}", err); + process::exit(1); + } ); + + let nums : Vec<i32> = raw.lines() + .map(|x| x.parse().unwrap()) + .collect(); + + let res : Vec<i32> = nums.iter() + .map(|&x| nums.iter().map(move |&y| (x, y))) + .flatten() + .filter(|(x, y)| x+y == 2020) + .map(|(x, y)| x*y) + .collect(); + + println!("x+y = 2020, x*y = {}", res.first().unwrap()); +} |