]> www.fi.muni.cz Git - aoc.git/commitdiff
2019 day 16 solutions
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 10 Nov 2023 15:15:17 +0000 (16:15 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 10 Nov 2023 15:15:17 +0000 (16:15 +0100)
2019/31.pl [new file with mode: 0755]
2019/32.pl [new file with mode: 0755]

diff --git a/2019/31.pl b/2019/31.pl
new file mode 100755 (executable)
index 0000000..bd8e57c
--- /dev/null
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+my @sig = split //, <>;
+pop @sig;
+
+my @mul = qw(0 1 0 -1);
+for my $step (1 .. 100) {
+       my @sig1;
+       for my $i (1 .. @sig) {
+               my $sum;
+               my @m = map { ($_) x $i } @mul;
+               push @m, shift @m;
+               # say "$i: mul = ", join(',', @m);
+               $sum += $sig[$_] * $m[$_ % @m] for 0 .. $#sig;
+               $sum =~ s/.*(.)$/$1/;
+               push @sig1, $sum;
+       }
+       @sig = @sig1;
+       say "step $step: ", @sig[0 .. 7];
+}
+
+       
diff --git a/2019/32.pl b/2019/32.pl
new file mode 100755 (executable)
index 0000000..5600cfc
--- /dev/null
@@ -0,0 +1,17 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+my @sig = split //, <>;
+pop @sig;
+@sig = (@sig) x 10_000;
+
+my $off = join('', @sig[0..6]);
+say "off=$off";
+my @mul = qw(0 1 0 -1);
+for my $step (1 .. 100) {
+       for my $i (reverse ($off .. $#sig-1)) {
+               $sig[$i] = ($sig[$i] + $sig[$i+1]) % 10;
+       }
+       say "step $step: ", @sig[$off .. $off + 7];
+}