blob: 00796d86767db0d1ada415414322049234f5f4fc (
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#! /usr/bin/env raku
multi MAIN (Int $k = 3, Str $list = "1 4 3 2 5 2", :$verbose)
{
MAIN($k, $list.words, :$verbose);
}
multi MAIN (Int $k = 3, *@list, :$verbose)
{
my @lower;
my @higher;
for @list -> $elem
{
$elem >= $k
?? @higher.push: $elem
!! @lower.push: $elem;
}
my @result = (@lower, @higher).flat;
if $verbose
{
say ": == : $k";
say ": < : @lower[]";
say ": >= : @higher[]";
}
say @result.join(" → ") if $verbose;
class ListElem
{
has $.value;
has $.next is rw;
method display
{
print $.value;
if $.next { print " → "; $.next.display; } else { say ""; }
}
}
my $head;
$head = ListElem.new(value => $_, next => $head) for @result.reverse;
$head.display;
}
|