diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2023-01-09 10:17:21 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2023-01-09 10:17:21 +0100 |
| commit | 41df53aa3f75854aa565cbe4911ac16edaec3668 (patch) | |
| tree | af6d5a00bfd7ef32f32d8d8cee173c2f171bcf82 /challenge-199 | |
| parent | dec095313737f0489797225861addabcf8e5a4f0 (diff) | |
| download | perlweeklychallenge-club-41df53aa3f75854aa565cbe4911ac16edaec3668.tar.gz perlweeklychallenge-club-41df53aa3f75854aa565cbe4911ac16edaec3668.tar.bz2 perlweeklychallenge-club-41df53aa3f75854aa565cbe4911ac16edaec3668.zip | |
Task 2 plperl done
Diffstat (limited to 'challenge-199')
| -rw-r--r-- | challenge-199/luca-ferrari/postgresql/ch-2.plperl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-199/luca-ferrari/postgresql/ch-2.plperl b/challenge-199/luca-ferrari/postgresql/ch-2.plperl new file mode 100644 index 0000000000..5063643e27 --- /dev/null +++ b/challenge-199/luca-ferrari/postgresql/ch-2.plperl @@ -0,0 +1,34 @@ +-- Perl Weekly Challenge 199 +-- Task 2 + +CREATE SCHEMA IF NOT EXISTS pwc199; + +/* +estdb=> select pwc199.task2_plperl( 7,2,3, array[3,0,1,1,9,7]::int[] ); + task2_plperl +-------------- + 4 + +*/ +CREATE OR REPLACE FUNCTION +pwc199.task2_plperl( int, int, int, int[] ) +RETURNS int +AS $CODE$ + my ( $x, $y, $z, $list ) = @_; + my @triplets; + + for my $i ( 0 .. $list->@* ) { + for my $j ( $i + 1 .. $list->@* - 1 ) { + for my $k ( $j + 1 .. $list->@* - 2 ) { + + push @triplets, [ $i, $j, $k ] if ( abs( $list->[ $i ] - $list->[ $j ] ) <= $x + && abs( $list->[ $j ] - $list->[ $k ] ) <= $y + && abs( $list->[ $i ] - $list->[ $k ] ) <= $z ); + } + } + } + + + return scalar @triplets; +$CODE$ +LANGUAGE plperl; |
