47 lines
634 B
Perl
47 lines
634 B
Perl
use 5.20.0;
|
|
use warnings;
|
|
|
|
use experimental qw/
|
|
signatures
|
|
postderef
|
|
/;
|
|
|
|
use Path::Tiny;
|
|
|
|
my @forest = path(shift)->lines({chomp => 1 });
|
|
|
|
|
|
sub go_down($forest,$right,$down=1) {
|
|
my $trees = 0;
|
|
my @forest = @$forest;
|
|
|
|
my $line = shift @forest;
|
|
my $i = 0;
|
|
|
|
use DDP;
|
|
|
|
while( $line) {
|
|
|
|
|
|
$trees++ if '#' eq substr $line, $i, 1;
|
|
$i+=$right;
|
|
$i %= length $line;
|
|
|
|
$line = shift @forest for 1..$down;
|
|
}
|
|
|
|
return $trees
|
|
}
|
|
|
|
use List::AllUtils qw/ product /;
|
|
$, = " ";
|
|
print product map { go_down([@forest],@$_) } (
|
|
[1,1],
|
|
[3,1],
|
|
[5,1],
|
|
[7,1],
|
|
[1,2],
|
|
)
|
|
|
|
|