From 07630506a3655f3b2b77e98ebdfe871733af7d8c Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 15 Dec 2023 13:27:15 -0600 Subject: [PATCH] day 15 part 1, golfed to 284 effective bytes 284/288. At least 1 of the 3 first newlines is needed (could golf smaller if we could guarantee input file lacks newline). Lame that m4 lacks a native character-to-ASCII lookup. ~1.9s --- 2023/day15.golfm4 | 5 +++++ 2023/day15.m4 | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 2023/day15.golfm4 create mode 100644 2023/day15.m4 diff --git a/2023/day15.golfm4 b/2023/day15.golfm4 new file mode 100644 index 0000000..7eb00ce --- /dev/null +++ b/2023/day15.golfm4 @@ -0,0 +1,5 @@ +eval(translit(_(include(I)),define(C,`eval(($1+$2)*17%256)') +define(B,`A(index(abcdefghijklmnopqrstuvwxyz,$1),$1)') +define(A,`ifelse($2,=,61,$2,-,45,$1,-1,$2+48,$1+97)') +define(H,`ifelse($2,,$1,`H(C($1,B(substr($2,0,1))),substr( +$2,1))')')define(_,`+H(,$1)ifelse($2,,,`_(shift($@))')'))) diff --git a/2023/day15.m4 b/2023/day15.m4 new file mode 100644 index 0000000..5044716 --- /dev/null +++ b/2023/day15.m4 @@ -0,0 +1,6 @@ +define(A,`ifelse($2,=,61,$2,-,45,$1,-1,$2+48,$1+97)') +define(B,`A(index(abcdefghijklmnopqrstuvwxyz,$1),$1)') +define(C,`eval(($1+$2)*17%256)') +define(H,`ifelse($2,,$1,`H(C($1,B(substr($2,0,1))),substr($2,1))')') +eval(translit(_(,include(I)),`' +define(_,`ifelse($2,,$1,`_($1+H(0,$2),shift(shift($@)))')'))) -- 2.11.4.GIT