diff options
author | Leah Neukirchen <leah@vuxu.org> | 2018-12-03 17:45:48 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2018-12-03 17:45:48 +0100 |
commit | 89d878ebfdd90a540f4a93329c14db56d77be229 (patch) | |
tree | b4d1e3b5a8df48aa3bb9114b11ced927811f06f5 /day01.rs | |
parent | 95276eff50f860d52715f68ef8c30bedb767c024 (diff) | |
download | adventofcode2018-89d878ebfdd90a540f4a93329c14db56d77be229.tar.gz adventofcode2018-89d878ebfdd90a540f4a93329c14db56d77be229.tar.xz adventofcode2018-89d878ebfdd90a540f4a93329c14db56d77be229.zip |
day01
Diffstat (limited to 'day01.rs')
-rw-r--r-- | day01.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/day01.rs b/day01.rs new file mode 100644 index 0000000..a864d5d --- /dev/null +++ b/day01.rs @@ -0,0 +1,22 @@ +use std::fs::File; +use std::collections::HashSet; +use std::io::{BufRead,BufReader}; + +fn main() { + let f = File::open("day01").unwrap(); + + let v: Vec<i32> = BufReader::new(&f).lines() + .map(|l| l.unwrap().parse().unwrap()) + .collect(); + println!("{}", v.iter().sum::<i32>()); // 553 + + let mut seen = HashSet::new(); + let s = v.iter() + .cycle() + .scan(0, |a,e| { + *a += e; + Some(*a) + }) + .find(|n| !seen.insert(*n)); + println!("{}", s.unwrap_or(-1)); // 78724 +} |