From: Jan "Yenya" Kasprzak Date: Fri, 10 Nov 2023 15:15:17 +0000 (+0100) Subject: 2019 day 16 solutions X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=aoc.git;a=commitdiff_plain;h=ce062f7e616e4bc8a88fcf9bf4bc4328f9a46c36 2019 day 16 solutions --- diff --git a/2019/31.pl b/2019/31.pl new file mode 100755 index 0000000..bd8e57c --- /dev/null +++ b/2019/31.pl @@ -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 index 0000000..5600cfc --- /dev/null +++ b/2019/32.pl @@ -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]; +}