From: Jan "Yenya" Kasprzak Date: Sun, 22 Dec 2024 05:29:27 +0000 (+0100) Subject: Day 22: walls of incomprehensible text X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=d95cb8df14f1bb2a7b262d3ac26651622bb51412;p=aoc.git Day 22: walls of incomprehensible text --- diff --git a/2024/43.pl b/2024/43.pl new file mode 100755 index 0000000..477ea8c --- /dev/null +++ b/2024/43.pl @@ -0,0 +1,19 @@ +#!/usr/bin/perl -w + +use v5.40; + +my $sum; +while (<>) { + chomp; + my $n=$_; + for (1 .. 2000) { + $n ^= $n << 6; + $n &= (1 << 24) - 1; + $n ^= $n >> 5; + $n &= (1 << 24) - 1; + $n ^= $n << 11; + $n &= (1 << 24) - 1; + } + $sum += $n; +} +say $sum; diff --git a/2024/44.pl b/2024/44.pl new file mode 100755 index 0000000..3d7faa3 --- /dev/null +++ b/2024/44.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl -w + +use v5.40; +use List::Util qw(max); + +my %segs; +while (<>) { + chomp; + my $n=$_; + my $prev = $n; + my %seen; + my @seq; + for (1 .. 2000) { + $n ^= $n << 6; + $n &= (1 << 24) - 1; + $n ^= $n >> 5; + $n &= (1 << 24) - 1; + $n ^= $n << 11; + $n &= (1 << 24) - 1; + my $p = $n % 10; + if (defined $prev) { + push @seq, $p - $prev; + shift @seq if @seq > 4; + if (@seq == 4) { + my $k = join(',', @seq); + $seen{$k} //= $p; + } + } + $prev = $p; + } + for my $k (keys %seen) { + $segs{$k} += $seen{$k}; + } +} +say max values %segs; + +# BEGIN { t; }