Validate all floors. Huge speed up because fewer variants validate.
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user