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; } 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; }