6 my ($players, $last) = @ARGV;
13 my $player = $_ % $players;
15 $score{$player} += $_;
17 $cur += @l if $cur < 0;
18 my ($val) = splice @l, $cur, 1;
19 $score{$player} += $val;
21 my $dst = @l > 1 ? ($cur + 2) % @l : $cur + 1;
22 $dst = @l if $dst == 0;
23 splice @l, $dst, 0, $_;
26 say $_ if $_ % 100000 == 0;
27 # say join(' ', $cur, @l);
30 use List::Util qw(max);
31 say max values %score;