commit 7f123a688e368029242582de3e7c143201e12d44
parent 267e19d7044eb444bf5fe2bcc7d19a6f407b2b69
Author: bsandro <email@bsandro.tech>
Date: Sat, 13 Dec 2025 02:08:29 +0200
day08 optimized x100
Diffstat:
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/day08.c b/day08.c
@@ -67,15 +67,6 @@ static void circuits_add(int *cirs_l, Circuit *cirs, Distance *dist) {
cir->points[cir->points_l++] = dist->p2;
}
-static bool has_points(int distsl, const Distance dists[distsl], const Point *p1, const Point *p2) {
- for (int i=0;i<distsl;++i) {
- if ((dists[i].p1==p2&&dists[i].p2==p1) ||
- (dists[i].p2==p1&&dists[i].p1==p2))
- return true;
- }
- return false;
-}
-
static bool circuits_overlap(Circuit *cir1, Circuit *cir2) {
for (int i=0;i<cir1->points_l;++i) {
if (has_point(cir2, cir1->points[i])) {
@@ -152,9 +143,7 @@ int main(void) {
Point *p1 = &points[i1];
Point *p2 = &points[i2];
int d = dist(points[i1], points[i2]);
- if (!has_points(dists_l, dists, p1, p2)) {
- dists[dists_l++] = (Distance){ p1, p2, d };
- }
+ dists[dists_l++] = (Distance){ p1, p2, d };
}
}
qsort(dists, dists_l, sizeof(Distance), cmp_dist);
@@ -167,7 +156,7 @@ int main(void) {
qsort(circuits, circuits_l, sizeof(Circuit), cmp_circuits);
part1 = circuits[0].points_l*circuits[1].points_l*circuits[2].points_l;
free(circuits);
- // ------------------------------------
+ // ---------------- p2 -------------------
circuits = calloc(dists_l, sizeof(Circuit));
circuits_l = 0;
for (int i=0;i<dists_l;++i) {