|
|
@@ -72,19 +72,32 @@ func part1(boxes []box) int {
|
|
|
}
|
|
|
|
|
|
var circuits []circuit
|
|
|
- for _, item := range boxes {
|
|
|
- if item.inCircuit {
|
|
|
+ for i := range boxes {
|
|
|
+ if boxes[i].inCircuit {
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
- if boxes[item.best].best == item.id {
|
|
|
- item.inCircuit = true
|
|
|
- boxes[item.best].inCircuit = true
|
|
|
+ if boxes[boxes[i].best].best == boxes[i].id {
|
|
|
+ boxes[i].inCircuit = true
|
|
|
+ boxes[boxes[i].best].inCircuit = true
|
|
|
|
|
|
- set := circuit{first: item.id, second: item.best, boxes: []box{item, boxes[item.best]}}
|
|
|
+ set := circuit{first: boxes[i].id, second: boxes[i].best, boxes: []box{boxes[i], boxes[boxes[i].best]}}
|
|
|
circuits = append(circuits, set)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ for _, item := range boxes {
|
|
|
+ if item.inCircuit {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ for i := range circuits {
|
|
|
+ if item.best == circuits[i].first || item.best == circuits[i].second {
|
|
|
+ circuits[i].boxes = append(circuits[i].boxes, item)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
fmt.Println(circuits)
|
|
|
|
|
|
return result
|