diff options
| author | Jan Tuomi <jan.tuomi@eficode.com> | 2018-12-05 15:44:41 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan.tuomi@eficode.com> | 2018-12-05 15:44:41 +0200 |
| commit | 4641b367cf397f05440cc042d9ef0fc700278cff (patch) | |
| tree | 9eecc16b80030d355a63185f74af0175b04dd5e2 /day1 | |
| parent | f70c926c17bc244bf51e8c05d891b0b13528fe8a (diff) | |
Solve day 1.2
Diffstat (limited to 'day1')
| -rw-r--r-- | day1/src/main.rs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/day1/src/main.rs b/day1/src/main.rs index f9b93ce..972b1ee 100644 --- a/day1/src/main.rs +++ b/day1/src/main.rs @@ -3,6 +3,7 @@ use std::io::BufReader; use std::io::BufRead; use std::fs::File; use std::process; +use std::collections::HashSet; fn main() { let args: Vec<String> = env::args().collect(); @@ -22,6 +23,7 @@ fn main() { let file = BufReader::new(&f); let mut diffs: Vec<i32> = Vec::new(); + // exercise 1 for line in file.lines() { let l = line.unwrap(); let res = l.parse::<i32>(); @@ -37,5 +39,20 @@ fn main() { } let result: i32 = diffs.iter().fold(0, |acc, x| acc + x); - println!("{}", result); + println!("Exercise 1: {}", result); + + // exercise 2 + let mut found = HashSet::new(); + found.insert(0); + let mut sum = 0; + loop { + for diff in &diffs { + sum = sum + diff; + if found.contains(&sum) { + println!("Exercise 2: {}", &sum); + process::exit(0); + } + found.insert(sum); + } + } } |
