aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-125/arne-sommer/blog.txt1
-rw-r--r--challenge-125/arne-sommer/raku/ch-1.raku32
-rw-r--r--challenge-125/arne-sommer/raku/ch-2.raku103
-rw-r--r--stats/pwc-current.json117
-rw-r--r--stats/pwc-language-breakdown-summary.json28
-rw-r--r--stats/pwc-language-breakdown.json834
-rw-r--r--stats/pwc-leaders.json362
-rw-r--r--stats/pwc-summary-1-30.json98
-rw-r--r--stats/pwc-summary-121-150.json88
-rw-r--r--stats/pwc-summary-151-180.json106
-rw-r--r--stats/pwc-summary-181-210.json94
-rw-r--r--stats/pwc-summary-211-240.json86
-rw-r--r--stats/pwc-summary-31-60.json102
-rw-r--r--stats/pwc-summary-61-90.json46
-rw-r--r--stats/pwc-summary-91-120.json36
-rw-r--r--stats/pwc-summary.json516
16 files changed, 1402 insertions, 1247 deletions
diff --git a/challenge-125/arne-sommer/blog.txt b/challenge-125/arne-sommer/blog.txt
new file mode 100644
index 0000000000..f6d83437e6
--- /dev/null
+++ b/challenge-125/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/pythagorean-tree.html
diff --git a/challenge-125/arne-sommer/raku/ch-1.raku b/challenge-125/arne-sommer/raku/ch-1.raku
new file mode 100644
index 0000000000..ddf46643c4
--- /dev/null
+++ b/challenge-125/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,32 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $N where $N > 0);
+
+my $match = False;
+
+my $N2 = $N * $N;
+
+for 1 .. $N2 -> $a
+{
+ for $a .. $N2 -> $b
+ {
+ for $b + 1 .. $N2 -> $c
+ {
+ next unless any($a, $b, $c) == $N;
+
+ my $left = $a * $a + $b * $b;
+ my $right = $c * $c;
+
+ last if $right > $left;
+
+ if $left == $right
+ {
+ say "($a, $b, $c)";
+ $match = True;
+ }
+ }
+ }
+}
+
+say "-1" unless $match;
+
diff --git a/challenge-125/arne-sommer/raku/ch-2.raku b/challenge-125/arne-sommer/raku/ch-2.raku
new file mode 100644
index 0000000000..2ccc0d7d29
--- /dev/null
+++ b/challenge-125/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,103 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Str $tree = "1 | 2 5 | 3 4 6 7 | * * * * * * 8 10 | 9", :v(:$verbose));
+
+class BinaryNode
+{
+ has Int $.value;
+ has BinaryNode $.left;
+ has BinaryNode $.right;
+}
+
+my @btree = $tree.split("|")>>.words;
+
+my @old-nodes;
+my @new-nodes;
+
+for @btree.reverse -> $row
+{
+ my @current = @$row;
+ @old-nodes = @new-nodes;
+ @new-nodes = ();
+
+ for @current -> $value
+ {
+ if $value eq "*"
+ {
+ @new-nodes.push("*");
+ next;
+ }
+
+ my $left = @old-nodes.shift // "*"; $left = Nil if $left eq "*";
+ my $right = @old-nodes.shift // "*"; $right = Nil if $right eq "*";
+
+ @new-nodes.push(BinaryNode.new(value => $value.Int,
+ left => $left // Nil,
+ right => $right // Nil));
+ }
+}
+
+my $btree = @new-nodes[0];
+
+# say ": { $btree.raku }" if $verbose;
+
+my %paths;
+
+traverse2($btree, ());
+
+sub traverse2 ($current, @path is copy)
+{
+ @path.push: $current.value;
+
+ if ($current.left or $current.right)
+ {
+ traverse2($current.left, @path) if $current.left;
+ traverse2($current.right, @path) if $current.right;
+ }
+ else
+ {
+ say ": Node: { $current.value } with path: { @path.join(", ") }" if $verbose;
+ %paths{ $current.value } = @path;
+
+ return;
+ }
+}
+
+my $best = 0;
+
+for %paths.keys.sort -> $from
+{
+ for %paths.keys.sort -> $to
+ {
+ next if $from >= $to;
+
+ my @up = @(%paths{$from});
+ my @down = @(%paths{$to});
+
+ say ": Path: ", @up.reverse.join(", "), ", ", @down.join(", "), " (via top)" if $verbose;
+
+ my $top;
+ while (@up[0] == @down[0])
+ {
+ $top = @up[0];
+ @up.shift;
+ @down.shift;
+ }
+
+ my @path2 = (@up.reverse, $top, @down ).flat;
+
+ my $length = @path2.elems -1;
+
+ if $length > $best
+ {
+ $best = $length;
+ say ": ", @path2.join(", "), " (shortest) length: $length [BEST]" if $verbose;
+ }
+ else
+ {
+ say ": ", @path2.join(", "), " (shortest) length: $length" if $verbose;
+ }
+ }
+}
+
+say $best;
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index bc559f7c4e..985e413562 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -2,14 +2,28 @@
"drilldown" : {
"series" : [
{
- "id" : "Cheok-Yin Fung",
- "name" : "Cheok-Yin Fung",
+ "name" : "Arne Sommer",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ],
+ "id" : "Arne Sommer"
+ },
+ {
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Cheok-Yin Fung",
+ "name" : "Cheok-Yin Fung"
},
{
"data" : [
@@ -18,8 +32,8 @@
2
]
],
- "name" : "E. Choroba",
- "id" : "E. Choroba"
+ "id" : "E. Choroba",
+ "name" : "E. Choroba"
},
{
"data" : [
@@ -36,12 +50,12 @@
2
]
],
- "name" : "Flavio Poletti",
- "id" : "Flavio Poletti"
+ "id" : "Flavio Poletti",
+ "name" : "Flavio Poletti"
},
{
- "id" : "James Smith",
"name" : "James Smith",
+ "id" : "James Smith",
"data" : [
[
"Perl",
@@ -60,10 +74,11 @@
2
]
],
- "name" : "Jorg Sommrey",
- "id" : "Jorg Sommrey"
+ "id" : "Jorg Sommrey",
+ "name" : "Jorg Sommrey"
},
{
+ "id" : "Mark Anderson",
"data" : [
[
"Perl",
@@ -74,12 +89,10 @@
1
]
],
- "name" : "Mark Anderson",
- "id" : "Mark Anderson"
+ "name" : "Mark Anderson"
},
{
"id" : "Roger Bell_West",
- "name" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -93,17 +106,18 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "Roger Bell_West"
},
{
+ "name" : "Simon Proctor",
"id" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
- ],
- "name" : "Simon Proctor"
+ ]
},
{
"name" : "Stuart Little",
@@ -120,7 +134,7 @@
"id" : "Stuart Little"
},
{
- "name" : "Ulrich Rieke",
+ "id" : "Ulrich Rieke",
"data" : [
[
"Perl",
@@ -131,7 +145,7 @@
1
]
],
- "id" : "Ulrich Rieke"
+ "name" : "Ulrich Rieke"
},
{
"data" : [
@@ -144,16 +158,21 @@
1
]
],
- "name" : "W. Luis Mochan",
- "id" : "W. Luis Mochan"
+ "id" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
}
]
},
"chart" : {
"type" : "column"
},
- "legend" : {
- "enabled" : 0
+ "title" : {
+ "text" : "The Weekly Challenge - 125"
+ },
+ "tooltip" : {
+ "followPointer" : 1,
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
+ "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
},
"plotOptions" : {
"series" : {
@@ -164,32 +183,22 @@
}
}
},
- "subtitle" : {
- "text" : "[Champions: 11] Last updated at 2021-08-13 14:58:19 GMT"
- },
- "tooltip" : {
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
- "followPointer" : 1,
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>"
- },
"yAxis" : {
"title" : {
"text" : "Total Solutions"
}
},
- "title" : {
- "text" : "The Weekly Challenge - 125"
- },
- "xAxis" : {
- "type" : "category"
- },
"series" : [
{
- "colorByPoint" : 1,
"data" : [
{
- "y" : 2,
+ "drilldown" : "Arne Sommer",
+ "y" : 3,
+ "name" : "Arne Sommer"
+ },
+ {
"name" : "Cheok-Yin Fung",
+ "y" : 2,
"drilldown" : "Cheok-Yin Fung"
},
{
@@ -198,18 +207,18 @@
"y" : 2
},
{
- "name" : "Flavio Poletti",
"y" : 6,
+ "name" : "Flavio Poletti",
"drilldown" : "Flavio Poletti"
},
{
"drilldown" : "James Smith",
- "name" : "James Smith",
- "y" : 3
+ "y" : 3,
+ "name" : "James Smith"
},
{
- "name" : "Jorg Sommrey",
"y" : 2,
+ "name" : "Jorg Sommrey",
"drilldown" : "Jorg Sommrey"
},
{
@@ -218,9 +227,9 @@
"drilldown" : "Mark Anderson"
},
{
- "y" : 4,
+ "drilldown" : "Roger Bell_West",
"name" : "Roger Bell_West",
- "drilldown" : "Roger Bell_West"
+ "y" : 4
},
{
"drilldown" : "Simon Proctor",
@@ -228,9 +237,9 @@
"y" : 2
},
{
- "drilldown" : "Stuart Little",
+ "y" : 4,
"name" : "Stuart Little",
- "y" : 4
+ "drilldown" : "Stuart Little"
},
{
"name" : "Ulrich Rieke",
@@ -238,12 +247,22 @@
"drilldown" : "Ulrich Rieke"
},
{
+ "drilldown" : "W. Luis Mochan",
"y" : 3,
- "name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan"
+ "name" : "W. Luis Mochan"
}
],
+ "colorByPoint" : 1,
"name" : "The Weekly Challenge - 125"
}
- ]
+ ],
+ "subtitle" : {
+ "text" : "[Champions: 12] Last updated at 2021-08-15 15:00:37 GMT"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "legend" : {
+ "enabled" : 0
+ }
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index e099e741d3..af1bb6fab6 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,6 +1,6 @@
{
- "title" : {
- "text" : "The Weekly Challenge Contributions [2019 - 2021]"
+ "legend" : {
+ "enabled" : "false"
},
"xAxis" : {
"labels" : {
@@ -13,23 +13,23 @@
},
"series" : [
{
+ "name" : "Contributions",
"dataLabels" : {
"align" : "right",
- "rotation" : -90,
"format" : "{point.y:.0f}",
- "color" : "#FFFFFF",
"enabled" : "true",
- "y" : 10,
+ "color" : "#FFFFFF",
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "rotation" : -90,
+ "y" : 10
},
- "name" : "Contributions",
"data" : [
[
"Blog",
- 1796
+ 1797
],
[
"Perl",
@@ -37,13 +37,13 @@
],
[
"Raku",
- 3717
+ 3719
]
]
}
],
"subtitle" : {
- "text" : "Last updated at 2021-08-13 14:58:19 GMT"
+ "text" : "Last updated at 2021-08-15 15:00:37 GMT"
},
"yAxis" : {
"title" : {
@@ -54,8 +54,8 @@
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
},
- "legend" : {
- "enabled" : "false"
+ "title" : {
+ "text" : "The Weekly Challenge Contributions [2019 - 2021]"
},
"chart" : {
"type" : "column"
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 0c0933e562..e2d6e5579d 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,36 +1,10 @@
{
- "tooltip" : {
- "headerFormat" : "<span style=\"font-size:11px\"></span>",
- "followPointer" : "true",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- },
- "borderWidth" : 0
- }
- },
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2021-08-13 14:58:19 GMT"
- },
"chart" : {
"type" : "column"
},
- "legend" : {
- "enabled" : "false"
- },
"drilldown" : {
"series" : [
{
- "id" : "001",
"name" : "001",
"data" : [
[
@@ -45,7 +19,8 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "001"
},
{
"name" : "002",
@@ -66,7 +41,6 @@
"id" : "002"
},
{
- "name" : "003",
"data" : [
[
"Perl",
@@ -81,7 +55,8 @@
9
]
],
- "id" : "003"
+ "id" : "003",
+ "name" : "003"
},
{
"data" : [
@@ -98,11 +73,10 @@
10
]
],
- "name" : "004",
- "id" : "004"
+ "id" : "004",
+ "name" : "004"
},
{
- "id" : "005",
"name" : "005",
"data" : [
[
@@ -117,10 +91,11 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "005"
},
{
- "id" : "006",
+ "name" : "006",
"data" : [
[
"Perl",
@@ -135,9 +110,10 @@
7
]
],
- "name" : "006"
+ "id" : "006"
},
{
+ "id" : "007",
"data" : [
[
"Perl",
@@ -152,12 +128,10 @@
10
]
],
- "name" : "007",
- "id" : "007"
+ "name" : "007"
},
{
"id" : "008",
- "name" : "008",
"data" : [
[
"Perl",
@@ -171,10 +145,10 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "008"
},
{
- "id" : "009",
"data" : [
[
"Perl",
@@ -189,10 +163,12 @@
13
]
],
+ "id" : "009",
"name" : "009"
},
{
"name" : "010",
+ "id" : "010",
"data" : [
[
"Perl",
@@ -206,10 +182,11 @@
"Blog",
11
]
- ],
- "id" : "010"
+ ]
},
{
+ "name" : "011",
+ "id" : "011",
"data" : [
[
"Perl",
@@ -223,9 +200,7 @@
"Blog",
10
]
- ],
- "name" : "011",
- "id" : "011"
+ ]
},
{
"data" : [
@@ -242,10 +217,11 @@
11
]
],
- "name" : "012",
- "id" : "012"
+ "id" : "012",
+ "name" : "012"
},
{
+ "name" : "013",
"data" : [
[
"Perl",
@@ -260,7 +236,6 @@
13
]
],
- "name" : "013",
"id" : "013"
},
{
@@ -282,8 +257,8 @@
"name" : "014"
},
{
- "id" : "015",
"name" : "015",
+ "id" : "015",
"data" : [
[
"Perl",
@@ -300,7 +275,7 @@
]
},
{
- "id" : "016",
+ "name" : "016",
"data" : [
[
"Perl",
@@ -315,9 +290,10 @@
12
]
],
- "name" : "016"
+ "id" : "016"
},
{
+ "id" : "017",
"data" : [
[
"Perl",
@@ -332,12 +308,9 @@
12
]
],
- "name" : "017",
- "id" : "017"
+ "name" : "017"
},
{
- "id" : "018",
- "name" : "018",
"data" : [
[
"Perl",
@@ -351,7 +324,9 @@
"Blog",
14
]
- ]
+ ],
+ "id" : "018",
+ "name" : "018"
},
{
"data" : [
@@ -368,8 +343,8 @@
13
]
],
- "name" : "019",
- "id" : "019"
+ "id" : "019",
+ "name" : "019"
},
{
"name" : "020",
@@ -390,8 +365,6 @@
"id" : "020"
},
{
- "id" : "021",
- "name" : "021",
"data" : [
[
"Perl",
@@ -405,9 +378,12 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "021",
+ "name" : "021"
},
{
+ "id" : "022",
"data" : [
[
"Perl",
@@ -422,10 +398,11 @@
10
]
],
- "name" : "022",
- "id" : "022"
+ "name" : "022"
},
{
+ "name" : "023",
+ "id" : "023",
"data" : [
[
"Perl",
@@ -439,13 +416,11 @@
"Blog",
12
]
- ],
- "name" : "023",
- "id" : "023"
+ ]
},
{
- "id" : "024",
"name" : "024",
+ "id" : "024",
"data" : [
[
"Perl",
@@ -462,7 +437,6 @@
]
},
{
- "id" : "025",
"name" : "025",
"data" : [
[
@@ -477,7 +451,8 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "025"
},
{
"data" : [
@@ -494,8 +469,8 @@
10
]
],
- "name" : "026",
- "id" : "026"
+ "id" : "026",
+ "name" : "026"
},
{
"data" : [
@@ -512,10 +487,11 @@
9
]
],
- "name" : "027",
- "id" : "027"
+ "id" : "027",
+ "name" : "027"
},
{
+ "id" : "028",
"data" : [
[
"Perl",
@@ -530,10 +506,10 @@
9
]
],
- "name" : "028",
- "id" : "028"
+ "name" : "028"
},
{
+ "id" : "029",
"data" : [
[
"Perl",
@@ -548,11 +524,9 @@
12
]
],
- "name" : "029",
- "id" : "029"
+ "name" : "029"
},
{
- "id" : "030",
"data" : [
[
"Perl",
@@ -567,9 +541,11 @@
10
]
],
+ "id" : "030",
"name" : "030"
},
{
+ "name" : "031",
"data" : [
[
"Perl",
@@ -584,10 +560,11 @@
9
]
],
- "name" : "031",
"id" : "031"
},
{
+ "name" : "032",
+ "id" : "032",
"data" : [
[
"Perl",
@@ -601,12 +578,9 @@
"Blog",
10
]
- ],
- "name" : "032",
- "id" : "032"
+ ]
},
{
- "name" : "033",
"data" : [
[
"Perl",
@@ -621,10 +595,11 @@
10
]
],
- "id" : "033"
+ "id" : "033",
+ "name" : "033"
},
{
- "name" : "034",
+ "id" : "034",
"data" : [
[
"Perl",
@@ -639,10 +614,9 @@
11
]
],
- "id" : "034"
+ "name" : "034"
},
{
- "name" : "035",
"data" : [
[
"Perl",
@@ -657,10 +631,12 @@
9
]
],
- "id" : "035"
+ "id" : "035",
+ "name" : "035"
},
{
"name" : "036",
+ "id" : "036",
"data" : [
[
"Perl",
@@ -674,12 +650,11 @@
"Blog",
11
]
- ],
- "id" : "036"
+ ]
},
{
- "id" : "037",
"name" : "037",
+ "id" : "037",
"data" : [
[
"Perl",
@@ -696,7 +671,6 @@
]
},
{
- "id" : "038",
"name" : "038",
"data" : [
[
@@ -711,7 +685,8 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "038"
},
{
"id" : "039",
@@ -733,7 +708,6 @@
},
{
"id" : "040",
- "name" : "040",
"data" : [
[
"Perl",
@@ -747,11 +721,11 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "040"
},
{
"id" : "041",
- "name" : "041",
"data" : [
[
"Perl",
@@ -765,10 +739,11 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "041"
},
{
- "id" : "042",
+ "name" : "042",
"data" : [
[
"Perl",
@@ -783,10 +758,9 @@
11
]
],
- "name" : "042"
+ "id" : "042"
},
{
- "name" : "043",
"data" : [
[
"Perl",
@@ -801,9 +775,12 @@
11
]
],
- "id" : "043"
+ "id" : "043",
+ "name" : "043"
},
{
+ "name" : "044",
+ "id" : "044",
"data" : [
[
"Perl",
@@ -817,12 +794,11 @@
"Blog",
11
]
- ],
- "name" : "044",
- "id" : "044"
+ ]
},
{
"name" : "045",
+ "id" : "045",
"data" : [
[
"Perl",
@@ -836,8 +812,7 @@
"Blog",
11
]
- ],
- "id" : "045"
+ ]
},
{
"name" : "046",
@@ -859,6 +834,7 @@
},
{
"name" : "047",
+ "id" : "047",
"data" : [
[
"Perl",
@@ -872,10 +848,10 @@
"Blog",
10
]
- ],
- "id" : "047"
+ ]
},
{
+ "id" : "048",
"data" : [
[
"Perl",
@@ -890,10 +866,11 @@
12
]
],
- "name" : "048",
- "id" : "048"
+ "name" : "048"
},
{
+ "name" : "049",
+ "id" : "049",
"data" : [
[
"Perl",
@@ -907,12 +884,11 @@
"Blog",
12
]
- ],
- "name" : "049",
- "id" : "049"
+ ]
},
{
"name" : "050",
+ "id" : "050",
"data" : [
[
"Perl",
@@ -926,8 +902,7 @@
"Blog",
12
]
- ],
- "id" : "050"
+ ]
},
{
"name" : "051",
@@ -948,7 +923,6 @@
"id" : "051"
},
{
- "id" : "052",
"name" : "052",
"data" : [
[
@@ -963,7 +937,8 @@
"Blog",
14
]
- ]
+ ],
+ "id" : "052"
},
{
"name" : "053",
@@ -984,6 +959,7 @@
"id" : "053"
},
{
+ "name" : "054",
"data" : [
[
"Perl",
@@ -998,11 +974,11 @@
18
]
],
- "name" : "054",
"id" : "054"
},
{
"name" : "055",
+ "id" : "055",
"data" : [
[
"Perl",