aboutsummaryrefslogtreecommitdiff
path: root/2020/day01/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to '2020/day01/src/main.rs')
-rw-r--r--2020/day01/src/main.rs22
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());
+}