]> www.fi.muni.cz Git - aoc.git/blob - 2019/31.pl
2019 day 16 solutions
[aoc.git] / 2019 / 31.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 my @sig = split //, <>;
6 pop @sig;
7
8 my @mul = qw(0 1 0 -1);
9 for my $step (1 .. 100) {
10         my @sig1;
11         for my $i (1 .. @sig) {
12                 my $sum;
13                 my @m = map { ($_) x $i } @mul;
14                 push @m, shift @m;
15                 # say "$i: mul = ", join(',', @m);
16                 $sum += $sig[$_] * $m[$_ % @m] for 0 .. $#sig;
17                 $sum =~ s/.*(.)$/$1/;
18                 push @sig1, $sum;
19         }
20         @sig = @sig1;
21         say "step $step: ", @sig[0 .. 7];
22 }
23
24