diff --git a/2016/11/src/main.rs b/2016/11/src/main.rs index 289de56..c1bce55 100644 --- a/2016/11/src/main.rs +++ b/2016/11/src/main.rs @@ -39,23 +39,25 @@ impl Facility { } pub fn validate(&self) -> bool { - let mut generators = HashSet::new(); - let mut microchips = HashSet::new(); + for f in 0..self.top_floor + 1 { + let mut generators = HashSet::new(); + let mut microchips = HashSet::new(); - for (i, &(g, m)) in self.components.iter().enumerate() { - if g == self.elevator { - generators.insert(i); + for (i, &(g, m)) in self.components.iter().enumerate() { + if g == f { + generators.insert(i); + } + if m == f { + microchips.insert(i); + } } - if m == self.elevator { - microchips.insert(i); - } - } - if !generators.is_empty() { - let diff = microchips.difference(&generators).collect::>(); + if !generators.is_empty() { + let diff = microchips.difference(&generators).collect::>(); - if !diff.is_empty() { - return false; + if !diff.is_empty() { + return false; + } } }