diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2023-01-16 09:29:28 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2023-01-16 09:29:28 +0100 |
| commit | 9e638419327ceacef7cb2d571aed2750d533b1d7 (patch) | |
| tree | 5f4347071e8f73111ea13c3f94d6e5d445307339 | |
| parent | b8a1cd65abd85f6cf9df5b9dc5bc34677763b531 (diff) | |
| download | perlweeklychallenge-club-9e638419327ceacef7cb2d571aed2750d533b1d7.tar.gz perlweeklychallenge-club-9e638419327ceacef7cb2d571aed2750d533b1d7.tar.bz2 perlweeklychallenge-club-9e638419327ceacef7cb2d571aed2750d533b1d7.zip | |
Task 1 done
| -rw-r--r-- | challenge-200/luca-ferrari/raku/ch-1.p6 | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-200/luca-ferrari/raku/ch-1.p6 b/challenge-200/luca-ferrari/raku/ch-1.p6 new file mode 100644 index 0000000000..7acf58814b --- /dev/null +++ b/challenge-200/luca-ferrari/raku/ch-1.p6 @@ -0,0 +1,34 @@ +#!raku + +# +# Perl Weekly Challenge 200 +# Task 1 +# +# See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-200/> +# + +sub MAIN( *@list where { @list.elems == @list.grep( * ~~ Int ).elems } ) { + my @slices; + + for 0 ^..^ @list.elems - 1 -> $center { + for 1 .. $center { + my ( $start, $end ) = $center - $_, $center + $_; + $start = 0 if $start < 0; + $end = @list.elems - 1 if $end >= @list.elems; + + my @seeking = @list[ $start .. $end ]; + my $ok = @list.elems >= 3; + for 1 ..^ @seeking.elems { + state $difference = @seeking[ $_ ] - @seeking[ $_ - 1 ]; + $ok = False and last if @seeking[ $_ ] - @seeking[ $_ - 1 ] != $difference; + } + + @slices.push: @seeking if $ok; + } + } + + @slices.join( "\n" ).say; + + + +} |
