diff options
| -rw-r--r-- | challenge-086/mark-anderson/raku/ch-1.p6 | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/challenge-086/mark-anderson/raku/ch-1.p6 b/challenge-086/mark-anderson/raku/ch-1.p6 new file mode 100644 index 0000000000..a67b3ce555 --- /dev/null +++ b/challenge-086/mark-anderson/raku/ch-1.p6 @@ -0,0 +1,30 @@ +# +# from a hint at https://www.geeksforgeeks.org/find-a-pair-with-the-given-difference/ +# + +multi MAIN($A where * ~~ Int, *@N where .all ~~ Int) { + say pair-diff(+$A, @N.map(+*)); +} + +multi MAIN { + use Test; + plan 3; + + ok pair-diff(7, [10, 8, 12, 15, 5]), "Example 1"; + ok pair-diff(6, [1, 5, 2, 9, 7]), "Example 2"; + nok pair-diff(15, [10, 30, 20, 50, 40]), "Example 3"; +} + +sub pair-diff($A, @N) { + my $b = bag @N; + + if $A == 0 { + return +$b.values.first(* > 1).so; + } + + for $b.keys -> $k { + return 1 if $b{$A+$k}; + } + + return 0; +} |
