use lib '.';

use Part1;

package Part2;

use List::AllUtils qw/ sum /;
use 5.36.0;

sub valid_equation ( $total, @numbers ) {
    return $numbers[0] == $total if @numbers == 1;

    return 0 if $numbers[0] > $total;

    my $i = shift @numbers;
    my $j = shift @numbers;
    return 1 if valid_equation( $total, "$i$j", @numbers );
    return 1 if valid_equation( $total, $i*$j, @numbers );
    return 1 if valid_equation( $total, $i+$j, @numbers );
    return 0;
}

sub solve ($equations) {
    return sum map { $_->[0] } grep { valid_equation(@$_) } @$equations;
}

1;