From d95cb8df14f1bb2a7b262d3ac26651622bb51412 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Sun, 22 Dec 2024 06:29:27 +0100 Subject: [PATCH] Day 22: walls of incomprehensible text --- 2024/43.pl | 19 +++++++++++++++++++ 2024/44.pl | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 2024/43.pl create mode 100755 2024/44.pl 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; } -- 2.43.5