aboutsummaryrefslogtreecommitdiff
path: root/challenge-241/arne-sommer/raku/arithmetic-triplets
blob: 9f4d5056fc5259d24a38eea3c71177b3c18aa609 (plain)
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
#! /usr/bin/env raku

unit sub MAIN ($diff where $diff ~~ UInt && $diff > 0,
               *@nums where @nums.elems > 2 && all(@nums) ~~ Int && ( [<] @nums ),
	       :v(:$verbose));

my $end      = @nums.end;
my $triplets = 0;

for 0 .. $end -2 -> $i
{
  for $i+1 .. $end -1 -> $j
  {
    for $j+1 .. $end -> $k
    {
      if $diff == @nums[$j] - @nums[$i] == @nums[$k] - @nums[$j]
      {
        $triplets++;
        say ":Indices: $i,$j,$k -> values: @nums[$i],@nums[$j],@nums[$k] [triplet]" if $verbose;
      }
      elsif $verbose
      {
        say ":Indices: $i,$j,$k -> values: @nums[$i],@nums[$j],@nums[$k]";
      }
    }
  }
}

say $triplets;