--- /dev/null
+#!/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; }