advent2025

Advent of Code 2025 Solutions
git clone git://bsandro.tech/advent2025
Log | Files | Refs | README | LICENSE

commit 7f123a688e368029242582de3e7c143201e12d44
parent 267e19d7044eb444bf5fe2bcc7d19a6f407b2b69
Author: bsandro <email@bsandro.tech>
Date:   Sat, 13 Dec 2025 02:08:29 +0200

day08 optimized x100

Diffstat:
Mday08.c | 15++-------------
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) {