#!/usr/bin/perl -w
use v5.38;
+use List::Util qw(sum);
my $sum;
while (<>) {
- my @seq = /-?\d+/g;
+ my @seq = reverse /-?\d+/g;
my @rest;
while (grep $_, @seq) {
- push @rest, $seq[0];
for my $i (0 .. $#seq-1) {
$seq[$i] = $seq[$i+1]-$seq[$i];
}
- pop @seq;
+ push @rest, pop @seq;
}
- my $s = 0;
- for (reverse @rest) {
- $s = $_ - $s;
- }
- $sum += $s;
+ $sum += sum @rest;
}
say $sum;