Commit d95cb8df authored by Jan Kasprzak's avatar Jan Kasprzak
Browse files

Day 22: walls of incomprehensible text

parent f1115783
Loading
Loading
Loading
Loading

2024/43.pl

0 → 100755
+19 −0
Original line number Diff line number Diff line
#!/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;

2024/44.pl

0 → 100755
+37 −0
Original line number Diff line number Diff line
#!/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; }