From: Laurent MAZET Date: Mon, 8 Dec 2025 15:54:33 +0000 (+0100) Subject: day 7 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=f9afa02cbcf4db267bd953c8a04d5cc913483e2d;p=aoc25.git day 7 --- diff --git a/day-7.awk b/day-7.awk new file mode 100644 index 0000000..828af85 --- /dev/null +++ b/day-7.awk @@ -0,0 +1,41 @@ +#!/usr/bin/awk -f + +BEGIN { + FS = "" + s = 0 + t["1"] = "" +} + +!/^[S.^]*$/ { + print "error line", NR, $0 +} + +{ + #printf "%s -> ", $0 + sub(/S/, "|") + for (i = 1; i <= NF; i++) { + if (t[i] == "|") { + if ($(i) == "^") { + ls = 0 + if ((i > 1) && ($(i - 1) != "^")) { + $(i - 1) = "|" + ls++ + } + if ((i < NF) && ($(i + 1) != "^")) { + $(i + 1) = "|" + ls++ + } + if (ls) s++ + } else if ($(i) == ".") { + $(i) = "|" + } + } + } + for (i = 1; i <= NF; i++) t[i] = $(i) + #for (i = 1; i <= NF; i++) printf "%s", $(i) + #printf "\n" +} + +END { + print "split", s +} diff --git a/day-7.txt b/day-7.txt new file mode 100644 index 0000000..c1b9f27 --- /dev/null +++ b/day-7.txt @@ -0,0 +1,142 @@ +......................................................................S...................................................................... +............................................................................................................................................. +......................................................................^...................................................................... +............................................................................................................................................. +.....................................................................^.^..................................................................... +............................................................................................................................................. +....................................................................^...^.................................................................... +............................................................................................................................................. +...................................................................^.^.^.^................................................................... +............................................................................................................................................. +..................................................................^...^.^.^.................................................................. +............................................................................................................................................. +.................................................................^.^.^.^...^................................................................. +............................................................................................................................................. +................................................................^.^.^.^.^.^.^................................................................ +............................................................................................................................................. +...............................................................^.......^.^.^.^............................................................... +............................................................................................................................................. +..............................................................^.^...^...^.^.^.^.............................................................. +............................................................................................................................................. +.............................................................^.^...^...^...^.^.^............................................................. +............................................................................................................................................. +............................................................^.....^.^.^.......^.^............................................................ +............................................................................................................................................. +...........................................................^.^.^...^.^...^.^.^.^.^........................................................... +............................................................................................................................................. +..........................................................^.......^.....^.^...^.^.^.......................................................... +............................................................................................................................................. +.........................................................^.^.^.^.^.^...^.^.^.....^.^......................................................... +............................................................................................................................................. +........................................................^.^...^.^...^.^.....^.^.^.^.^........................................................ +............................................................................................................................................. +.......................................................^...^.^...^.^.^.^.^...^.......^....................................................... +............................................................................................................................................. +......................................................^.^...^.......^.....^...^.^.^.^.^...................................................... +............................................................................................................................................. +.....................................................^...^.^.^...^.^.^...^.^.^.^.^.^.^.^..................................................... +............................................................................................................................................. +....................................................^.....^.^.^.^.^...^.^.^...^.^.^...^.^.................................................... +............................................................................................................................................. +...................................................^.^.^.^.^...^...^.^.^...^.^.^...^.^...^................................................... +............................................................................................................................................. +..................................................^...^.^.^.^...^.^...^.^...^...^...^.^.^.^.................................................. +............................................................................................................................................. +.................................................^.^.^.^.^.^.^...^...^.^...^...^.^...^...^.^................................................. +............................................................................................................................................. +................................................^...^...^...^.^.^.^.^.^.^.....^...^.^.^.^.^.^................................................ +............................................................................................................................................. +...............................................^.^.....^.^.^.^.^.^.^.^.^.....^.^.^.^.^.^...^.^............................................... +............................................................................................................................................. +..............................................^.^.^.^.^.^.^.^.^.^...^.^.^.^...^.....^...^...^.^.............................................. +............................................................................................................................................. +.............................................^.^.^.^.^.^.^...^...^...^...^...^...^.^.^.........^............................................. +............................................................................................................................................. +............................................^.^.....^.^.^.^.^.^.^...^.^.^.^.^.^...^...^...^.^...^............................................ +............................................................................................................................................. +...........................................^.^.^.^.^.^.^.^.^.^.^.^.^.^.....^.^.......^...^.^.^.^.^........................................... +............................................................................................................................................. +..........................................^.^.^.^.....^.^.....^...^.^.^.^.^.....^.^...^.^.^.^.^.^.^.......................................... +............................................................................................................................................. +.........................................^.^...^.^.^.^...^.^.^...^...^.^.^.^...^.^.^.^.^.....^.^.^.^......................................... +............................................................................................................................................. +........................................^.^...^.....^.^.....^.^.^.^.......^.^.^.^.^...^.^...^.^.^.^.^........................................ +............................................................................................................................................. +.......................................^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.....^.^.^.^.^.^...^.^.^.^....................................... +............................................................................................................................................. +......................................^.^.^.^...^...^.^.^...^...^...^...^.^.^.^.^.^.^.^.^.^...^.^.^.^.^...................................... +............................................................................................................................................. +.....................................^.^.^.^.......^...^...^.^.^.^.^.^.^.^.^.^.....^.^.^...^.^.^.^.^.^.^..................................... +............................................................................................................................................. +....................................^...^.....^.^.^...^.^.^.^...^.^.......^.^.....^.^...^.^.^.^.^.^.^...^.................................... +............................................................................................................................................. +...................................^.^.^.^.^.^.......^.^.^.^.^.^.....^...^...^.^.^...^.^.....^.^.^.^.^.^.^................................... +............................................................................................................................................. +..................................^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^...^...^.^.^.^.................................. +............................................................................................................................................. +.................................^.^.^.^...^...^.^.^.^.^.^.^...^.^.......^.^.^.^.........^...^.^.^.^.^...^.^................................. +............................................................................................................................................. +................................^.^.^...^.....^.....^.^.^.^...^.^...^.^.^.....^.^.......^.^.^...^.^.^.^.....^................................ +............................................................................................................................................. +...............................^.^.......^...^.^.^.^.^.....^.^.^.^.^...^.^.^...^.^...^.^.^.........^.^.^.^.^.^............................... +............................................................................................................................................. +..............................^...^.^.....^...^.^.^...^.^.^...^.^...^.....^...^.^.^...^...^.^.^.^...^.^.^.^.^.^.............................. +............................................................................................................................................. +.............................^.^.^.^.^.^.^.......^.^.......^.^.^.^.^.^.^.^.^.^.^.^.....^.^.^.^...^.^.^.^.^.^.^.^............................. +............................................................................................................................................. +............................^...^.^.^.^...^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^...^...^...^.....^.^.^.^.^.^.....^............................ +............................................................................................................................................. +...........................^...^.^.^.^.^.^.....^...^.^...^.^.^.^.^.^.^...^...^.^.^.^.^.^...^.^.^.^.....^.^.^...^.^........................... +............................................................................................................................................. +..........................^.^.^.^.....^.^.^.^.^...^...^.^...^.^...^.^.^.^.^.....^...^...^.....^.^.^.^...^.^.^.^.^.^.......................... +............................................................................................................................................. +.........................^.^.^.^.^.....^.^.^...^.^.^.^.^.^.^.^.^...^.^.^...^.^.^.^.^...^.^.^.^...^...^.^.^.........^......................... +............................................................................................................................................. +........................^.^.^.^.....^.^.^.^.^.^.^.^...^.^.^.^.^.^...^.^.^...^...^...^.......^.^.^.........^...^.^.^.^........................ +............................................................................................................................................. +.......................^.....^.^.^.........^.^...^.........^.^.^...^...^.^...^.......^.^.^...^...^.^.^.^.^.^.^.^...^.^....................... +............................................................................................................................................. +......................^...^.......^.^.^.^.^.^.^.^.^.^.^.^...^.....^.^.^...^.^.^.^.^.^.^...^.^.^...^...^...^...^.......^...................... +............................................................................................................................................. +.....................^.^.^...^.^.^.....^.^.....^.....^.^.^.^.^...^.^.^.^.^...^.^.^.^.^.^.^.^...^...^.........^.^.^...^.^..................... +............................................................................................................................................. +....................^.^.^...^.^.^...^.^.^.^.^.......^.^...^...^.^.......^.....^.^.^.....^.^.....^.....^.^.^.^.^.^.....^.^.................... +............................................................................................................................................. +...................^.^.^...^.^.^.^...^.^...^...^.^.^.^.^.^...^.^.^.^.^.....^.^.^.....^.^.^...^.^.^.^...^...^...^.^.....^.^................... +............................................................................................................................................. +..................^.^.^...^...^.^.^.^...^.^.^.^.^.^.^...^.^...^.^...^.^.....^.^.^.^.....^.^...^.^.^.....^.^.^.^.^.......^.^.................. +............................................................................................................................................. +.................^...^.^.^...^.^.^...^.^.^.......^.^.^.^.^...^.^.^.^...............^...^...^.^...^.^.^.^.^.^.....^.....^.^.^................. +............................................................................................................................................. +................^.^.....^.........^...^...^.....^.....^.^.^.^...^.^.^...^.^.^.^.^.^.^.^.^...^.^.......^...^.^.^.^.^...^.^...^................ +............................................................................................................................................. +...............^...........^...^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^...^.^.^...^.^...^.^.^.^...^.^.^.^...^...^...^.^.....^...^.^.^............... +............................................................................................................................................. +..............^.....^...^...^.^.^.^.^.^.^...^.^.^.^.^.^.^...^...^.^.....^...^.^.^.^.^...^.^.^...^.^.^.^.^.^...^...^.^.^...^.^.^.............. +............................................................................................................................................. +.............^.....^.....^...^.^.^...^.^.^.^...^.^.^.....^...^...^.^...^...^.^.^...^...^.^.....^.^...^.^.^.......^.^.^.^...^.^.^............. +............................................................................................................................................. +............^.^.^.^...^...^.^...^.^...^.^.^...^...^.^...^.^.^...^.^...^...^.^...^.....^.^.....^.....^.^.^.^.^.^...^.^.^.^...^.^.^............ +............................................................................................................................................. +...........^.^.^.^.^...^...^...^.^.^...^.^.^...^...^.^...^.^.^...^.....^.^...^.^...^...^.^.^.^.^.^...^.^...^.^...^.^.^.^...^.^.^.^........... +............................................................................................................................................. +..........^.^.^.^.^.......^.^.^.^.^.^...^.....^.....^.^.^.^.^.^.^.^.^.^...^.^...^...^...^.^.^...^.^.^.^.^.^.^.^...^.^.^...^.^...^.^.......... +............................................................................................................................................. +.........^.^.^.^.^.^...^...^.^.^.^.^.^.^.^.^.....^...^.^.^.....^...^.^.^...^...^.^...^.^.^.^.^.^.^.^...^.....^...^.....^.^.^.^.....^......... +............................................................................................................................................. +........^.^.^...^.^.^...^.....^.^.^...^.^.^.^.^...^.^.^...^.^.......^.^.^.^.^...^.^.........^.........^...^.^.^.^.^.^.^.....^.^.....^........ +............................................................................................................................................. +.......^.....^...^.^.^.^...^.^.^.^.^...^.^.^...^.^.....^.^.^.^...^...^...^.^.^.^.^.^.^.^...^.^.^.^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^....... +............................................................................................................................................. +......^.^.^.^...^...^.^...^.^.^.^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^...^.........^...^...^.^.^.^...^.^...^.^.....^...^.^.^...^.^.^...... +............................................................................................................................................. +.....^...^.^.......^...^.^.^.^.^.^.^.^...^.^.^.^.......^...^.^...^.^...^...^.^...^.^.^.....^.^.^.^.^...^...^...^.^.^.^.^.....^.^.^.^...^..... +............................................................................................................................................. +....^.^.^.....^...^.^.....^...^.^.^.^.^.^.^...^...^.^.^.^.^.^.^.^.^.^.^.^.^.....^...^.^...^.^.^.^.^.^.^.......^.^.^.^.....^.^.^.^.^.^.^.^.... +............................................................................................................................................. +...^.^.^...^.^.^.^...^...^.^.^.^.^...^.^.^.^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.....^.^.^.....^.^.^.^.^...^.^.^.^.^.^.^.....^.^.^...^.^.^.^.^... +............................................................................................................................................. +..^...^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.........^...^.^.^...^.^.^...^.....^...^.^...^.^.^.^.^.^.....^...^...^.^.^.^.^.^.^.^.^.^.^.^.. +............................................................................................................................................. +.^.^.^.^.^.^...^...^...^.^...^...^.....^.^.^...^.^.^.^.^...^.^...^...^.^...^.^...^.^.^.^.^...^.^.^.^.....^.^.^.^...^.^...^.^.^.^.^...^.^...^. +............................................................................................................................................. diff --git a/day-7_test.txt b/day-7_test.txt new file mode 100644 index 0000000..57a2466 --- /dev/null +++ b/day-7_test.txt @@ -0,0 +1,16 @@ +.......S....... +............... +.......^....... +............... +......^.^...... +............... +.....^.^.^..... +............... +....^.^...^.... +............... +...^.^...^.^... +............... +..^...^.....^.. +............... +.^.^.^.^.^...^. +............... diff --git a/day-7b.awk b/day-7b.awk new file mode 100644 index 0000000..951c9e8 --- /dev/null +++ b/day-7b.awk @@ -0,0 +1,49 @@ +#!/usr/bin/awk -f + +BEGIN { + FS = "" + s = 0 + t["1"] = "" +} + +!/^[S.^]*$/ { + print "error line", NR, $0 +} + +/S/ { + print + for (i = 1; i <= NF; i++) { + t[i] = ($(i) == "S") ? 1 : 0 + } +} + +!/S/ { + printf "%s ->", $0 + for (i = 1; i <= NF; i++) { + if (t[i] ~ /[1-9]/) { + if ($(i) == "^") { + ls = 0 + if ((i > 1) && ($(i - 1) != "^")) { + t[i - 1] += t[i] + ls++ + } + if ((i < NF) && ($(i + 1) != "^")) { + t[i + 1] += t[i] + ls++ + } + if (ls) { + s++ + } + t[i] = 0 + } + } + } + for (i = 1; i <= NF; i++) printf " %d", t[i]; printf "\n" +} + +END { + l = 0 + for (i in t) l += t[i] + print "split", s + print "timeline", l +}