use strict; use warnings; my @init = split(/,/, <>); my @fish = @init; for (1..80) { my @spawns; for (@fish) { if ($_) { $_--; } else { $_ = 6; push @spawns, 8; } } push @fish, @spawns; } print scalar(@fish), "\n"; my %counts; $counts{$_}++ for @init; for (1..256) { my $zeros = $counts{0} // 0; $counts{$_} = $counts{$_+1} for 0..7; $counts{8} = $zeros; $counts{6} += $zeros; } my $sum = 0; $sum += $_ for values %counts; print "$sum\n";