day 7
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Mon, 8 Dec 2025 15:54:33 +0000 (16:54 +0100)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Mon, 8 Dec 2025 15:54:33 +0000 (16:54 +0100)
day-7.awk [new file with mode: 0644]
day-7.txt [new file with mode: 0644]
day-7_test.txt [new file with mode: 0644]
day-7b.awk [new file with mode: 0644]

diff --git a/day-7.awk b/day-7.awk
new file mode 100644 (file)
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 (file)
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 (file)
index 0000000..57a2466
--- /dev/null
@@ -0,0 +1,16 @@
+.......S.......
+...............
+.......^.......
+...............
+......^.^......
+...............
+.....^.^.^.....
+...............
+....^.^...^....
+...............
+...^.^...^.^...
+...............
+..^...^.....^..
+...............
+.^.^.^.^.^...^.
+...............
diff --git a/day-7b.awk b/day-7b.awk
new file mode 100644 (file)
index 0000000..951c9e8
--- /dev/null
@@ -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
+}