Validate all floors. Huge speed up because fewer variants validate.

This commit is contained in:
2016-12-18 16:58:45 +01:00
parent c8f69b1a50
commit ed89ecefb8

View File

@@ -39,14 +39,15 @@ impl Facility {
} }
pub fn validate(&self) -> bool { pub fn validate(&self) -> bool {
for f in 0..self.top_floor + 1 {
let mut generators = HashSet::new(); let mut generators = HashSet::new();
let mut microchips = HashSet::new(); let mut microchips = HashSet::new();
for (i, &(g, m)) in self.components.iter().enumerate() { for (i, &(g, m)) in self.components.iter().enumerate() {
if g == self.elevator { if g == f {
generators.insert(i); generators.insert(i);
} }
if m == self.elevator { if m == f {
microchips.insert(i); microchips.insert(i);
} }
} }
@@ -58,6 +59,7 @@ impl Facility {
return false; return false;
} }
} }
}
true true
} }