package Day2::Part1; use 5.36.0; use List::Util qw/ sum pairmap /; use List::MoreUtils qw/ part zip /; sub read_file(@lines) { return map { [split] } @lines; } sub is_safe(@report) { my $asc = $report[1] - $report[0]; my $level = shift @report; while(@report) { my $next = shift @report; my $delta = $next - $level; return 0 unless $delta*$asc >= 0; return 0 unless 1 <= abs($delta) <= 3; $level = $next; } return 1; } sub solve(@reports) { return sum map { is_safe(@$_) } @reports; } 1;