From de96af0762cf5abae09788434f407e7fc86d1b24 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sun, 7 Dec 2025 07:32:00 +0100 Subject: Add 2025 day 5 solutions --- 2025/05/puzzle-1.awk | 19 +++++++++++++++++++ 2025/05/puzzle-2.awk | 31 +++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100755 2025/05/puzzle-1.awk create mode 100755 2025/05/puzzle-2.awk (limited to '2025') diff --git a/2025/05/puzzle-1.awk b/2025/05/puzzle-1.awk new file mode 100755 index 0000000..acfe21b --- /dev/null +++ b/2025/05/puzzle-1.awk @@ -0,0 +1,19 @@ +#!/usr/bin/awk -f + +BEGIN { FS = "-" } + +NF == 2 { + xs[NR, 1] = $1 + xs[NR, 2] = $2 +} + +NF == 1 { + for (i = 1; i <= length(xs) / 2; i++) { + if ($1 >= xs[i, 1] && $1 <= xs[i, 2]) { + cnt++ + break + } + } +} + +END { print cnt } diff --git a/2025/05/puzzle-2.awk b/2025/05/puzzle-2.awk new file mode 100755 index 0000000..3dfc661 --- /dev/null +++ b/2025/05/puzzle-2.awk @@ -0,0 +1,31 @@ +#!/usr/bin/gawk -f + +function rangecmp(i1, v1, i2, v2) +{ + return v1[1] - v2[1] +} + +function max(x, y) +{ + return x > y ? x : y +} + +BEGIN { FS = "-" } + +NF == 2 { + xs[NR][1] = $1 + xs[NR][2] = $2 +} + +END { + asort(xs, xs, "rangecmp") + for (i in xs) { + if (xs[i][2] <= m) + continue + cnt += xs[i][2] - max(xs[i][1], m) + if (xs[i][1] > m) + cnt++ + m = xs[i][2] + } + print cnt +} -- cgit v1.2.3