2018/01
This commit is contained in:
32
2018/01/src/main.rs
Normal file
32
2018/01/src/main.rs
Normal file
@@ -0,0 +1,32 @@
|
||||
use std::collections::HashSet;
|
||||
use std::io::{self, BufRead};
|
||||
|
||||
fn main() {
|
||||
let stdin = io::stdin();
|
||||
|
||||
let changes = stdin
|
||||
.lock()
|
||||
.lines()
|
||||
.filter_map(Result::ok)
|
||||
.map(|line| line.parse::<i32>().expect("failed to parse delta"))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
println!("part.one={}", changes.iter().sum::<i32>());
|
||||
|
||||
let mut seen = HashSet::new();
|
||||
let mut frequency = 0;
|
||||
|
||||
'iterate: loop {
|
||||
for change in &changes {
|
||||
frequency += change;
|
||||
|
||||
if seen.contains(&frequency) {
|
||||
break 'iterate;
|
||||
}
|
||||
|
||||
seen.insert(frequency);
|
||||
}
|
||||
}
|
||||
|
||||
println!("part.two={}", frequency);
|
||||
}
|
||||
Reference in New Issue
Block a user