blob: e19a91311072cf075e22c1f9d6ececf01df5a2b0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
my @string = split ' ', scalar(<>);
chomp(my $length = <>);
unshift @string, undef;
my $base = @string;
for my $num (0..$base ** $length - 1) {
my @digits;
my $remainder = $num;
for my $digit (1..$length) {
my $exponent = $length - $digit;
push @digits, int($remainder / $base ** $exponent);
$remainder -= $digits[-1] * $base ** $exponent;
}
@digits = map { $string[$_] } @digits;
next unless valid(@digits);
say join('', grep { defined } @digits);
}
sub valid {
my @digits = @_;
return unless grep { defined } @digits;
my $seen_undef;
for my $digit (@digits) {
return if $seen_undef && defined($digit);
$seen_undef = 1 if !defined($digit);
}
return 1;
}
|