aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2025-02-02 20:57:12 +0000
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2025-02-02 20:57:12 +0000
commit114ea6c2cdd10ccedfc8a9433c7fbc0bda6ebcde (patch)
tree822ba28b5d981422c123376876c0143055709fd1
parent3fc00bfa261ae56840b070025fd36ea1e6d8a7cf (diff)
downloadperlweeklychallenge-club-114ea6c2cdd10ccedfc8a9433c7fbc0bda6ebcde.tar.gz
perlweeklychallenge-club-114ea6c2cdd10ccedfc8a9433c7fbc0bda6ebcde.tar.bz2
perlweeklychallenge-club-114ea6c2cdd10ccedfc8a9433c7fbc0bda6ebcde.zip
- Added solutions by Wanderdoc.
-rwxr-xr-xchallenge-306/wanderdoc/perl/ch-1.pl84
-rw-r--r--stats/pwc-current.json353
-rw-r--r--stats/pwc-language-breakdown-2019.json608
-rw-r--r--stats/pwc-language-breakdown-2020.json778
-rw-r--r--stats/pwc-language-breakdown-2021.json778
-rw-r--r--stats/pwc-language-breakdown-2022.json398
-rw-r--r--stats/pwc-language-breakdown-2023.json778
-rw-r--r--stats/pwc-language-breakdown-2024.json416
-rw-r--r--stats/pwc-language-breakdown-2025.json128
-rw-r--r--stats/pwc-language-breakdown-summary.json74
-rw-r--r--stats/pwc-leaders.json744
-rw-r--r--stats/pwc-summary-1-30.json108
-rw-r--r--stats/pwc-summary-121-150.json34
-rw-r--r--stats/pwc-summary-151-180.json110
-rw-r--r--stats/pwc-summary-181-210.json116
-rw-r--r--stats/pwc-summary-211-240.json46
-rw-r--r--stats/pwc-summary-241-270.json112
-rw-r--r--stats/pwc-summary-271-300.json104
-rw-r--r--stats/pwc-summary-301-330.json38
-rw-r--r--stats/pwc-summary-31-60.json112
-rw-r--r--stats/pwc-summary-61-90.json106
-rw-r--r--stats/pwc-summary-91-120.json46
-rw-r--r--stats/pwc-summary.json60
-rw-r--r--stats/pwc-yearly-language-summary.json160
24 files changed, 3195 insertions, 3096 deletions
diff --git a/challenge-306/wanderdoc/perl/ch-1.pl b/challenge-306/wanderdoc/perl/ch-1.pl
new file mode 100755
index 0000000000..2f0a8b1ee3
--- /dev/null
+++ b/challenge-306/wanderdoc/perl/ch-1.pl
@@ -0,0 +1,84 @@
+#!perl
+use strict;
+use warnings FATAL => qw(all);
+
+=prompt
+You are given an array of positive integers, @ints.
+
+Write a script to return the sum of all possible odd-length subarrays of the given array. A subarray is a contiguous subsequence of the array.
+Example 1
+
+Input: @ints = (2, 5, 3, 6, 4)
+Output: 77
+
+Odd length sub-arrays:
+(2) => 2
+(5) => 5
+(3) => 3
+(6) => 6
+(4) => 4
+(2, 5, 3) => 10
+(5, 3, 6) => 14
+(3, 6, 4) => 13
+(2, 5, 3, 6, 4) => 20
+
+Sum => 2 + 5 + 3 + 6 + 4 + 10 + 14 + 13 + 20 => 77
+
+Example 2
+
+Input: @ints = (1, 3)
+Output: 4
+=cut
+
+use List::Util qw(sum);
+use Test2::V0 -no_srand => 1;
+
+is(odd_sum(2, 5, 3, 6, 4), 77, 'Example 1');
+is(odd_sum(1, 3), 4, 'Example 2');
+done_testing();
+
+
+sub odd_sum
+{
+ my @arr = @_;
+ my $iterator = odd_contig_subsets([@arr]);
+ my $sum;
+ while (my $subset = $iterator->())
+ {
+ $sum += sum(@$subset);
+ }
+ return $sum;
+}
+
+sub odd_contig_subsets
+{
+ my $aref = $_[0];
+ my $length = scalar @$aref;
+ my $total = 2 ** $length; # Total number of subsets
+
+ my $current = 1; # Start from the first bitmask excluding 0
+
+ return sub
+ {
+ if ($current >= $total)
+ {
+ return undef; # All subsets are generated
+ }
+
+ # Generate the current subset based on the bitmask
+ my $bitmask = sprintf("%0${length}b", $current);
+ my @bits = reverse split(//, $bitmask);
+ my @included = grep { $bits[$_] == 1 } 0 .. $#bits;
+
+ # now instead of just $current++ choose odd contiguous subsets:
+ my $count;
+ do {
+ $current++;
+ $bitmask = sprintf("%0${length}b", $current);
+ $count = $bitmask =~ tr/1/1/;
+ }
+ while ( $count % 2 == 0 or $bitmask =~ /10+1/ );
+
+ return [@{$aref}[@included]]; # Return the subset
+ };
+} \ No newline at end of file
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 338ed0f974..d0f0405c5e 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,139 +1,22 @@
{
- "tooltip" : {
- "followPointer" : 1,
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>"
- },
- "series" : [
- {
- "data" : [
- {
- "y" : 2,
- "drilldown" : "Andreas Mahnke",
- "name" : "Andreas Mahnke"
- },
- {
- "drilldown" : "Arne Sommer",
- "y" : 3,
- "name" : "Arne Sommer"
- },
- {
- "name" : "Athanasius",
- "drilldown" : "Athanasius",
- "y" : 4
- },
- {
- "drilldown" : "BarrOff",
- "y" : 1,
- "name" : "BarrOff"
- },
- {
- "y" : 2,
- "drilldown" : "Bob Lied",
- "name" : "Bob Lied"
- },
- {
- "y" : 2,
- "drilldown" : "David Ferrone",
- "name" : "David Ferrone"
- },
- {
- "name" : "E. Choroba",
- "y" : 2,
- "drilldown" : "E. Choroba"
- },
- {
- "drilldown" : "Jan Krnavek",
- "y" : 1,
- "name" : "Jan Krnavek"
- },
- {
- "y" : 3,
- "drilldown" : "Jorg Sommrey",
- "name" : "Jorg Sommrey"
- },
- {
- "y" : 2,
- "drilldown" : "Lubos Kolouch",
- "name" : "Lubos Kolouch"
- },
- {
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson",
- "y" : 2
- },
- {
- "name" : "Niels van Dijke",
- "y" : 2,
- "drilldown" : "Niels van Dijke"
- },
- {
- "y" : 3,
- "drilldown" : "Peter Campbell Smith",
- "name" : "Peter Campbell Smith"
- },
- {
- "name" : "Peter Meszaros",
- "y" : 2,
- "drilldown" : "Peter Meszaros"
- },
- {
- "y" : 3,
- "drilldown" : "Robbie Hatley",
- "name" : "Robbie Hatley"
- },
- {
- "name" : "Robert Ransbottom",
- "drilldown" : "Robert Ransbottom",
- "y" : 2
- },
- {
- "y" : 5,
- "drilldown" : "Roger Bell_West",
- "name" : "Roger Bell_West"
- },
- {
- "name" : "Simon Green",
- "drilldown" : "Simon Green",
- "y" : 3
- },
- {
- "y" : 4,
- "drilldown" : "Thomas Kohler",
- "name" : "Thomas Kohler"
- },
- {
- "name" : "Ulrich Rieke",
- "drilldown" : "Ulrich Rieke",
- "y" : 4
- },
- {
- "drilldown" : "W. Luis Mochan",
- "y" : 3,
- "name" : "W. Luis Mochan"
- }
- ],
- "name" : "The Weekly Challenge - 306",
- "colorByPoint" : 1
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ }
}
- ],
+ },
+ "subtitle" : {
+ "text" : "[Champions: 22] Last updated at 2025-02-02 20:56:54 GMT"
+ },
"chart" : {
"type" : "column"
},
- "title" : {
- "text" : "The Weekly Challenge - 306"
- },
"legend" : {
"enabled" : 0
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "subtitle" : {
- "text" : "[Champions: 21] Last updated at 2025-02-02 20:53:05 GMT"
- },
"drilldown" : {
"series" : [
{
@@ -147,7 +30,6 @@
]
},
{
- "id" : "Arne Sommer",
"data" : [
[
"Raku",
@@ -158,7 +40,8 @@
1
]
],
- "name" : "Arne Sommer"
+ "name" : "Arne Sommer",
+ "id" : "Arne Sommer"
},
{
"data" : [
@@ -171,28 +54,28 @@
2
]
],
- "id" : "Athanasius",
- "name" : "Athanasius"
+ "name" : "Athanasius",
+ "id" : "Athanasius"
},
{
"id" : "BarrOff",
+ "name" : "BarrOff",
"data" : [
[
"Raku",
1
]
- ],
- "name" : "BarrOff"
+ ]
},
{
"name" : "Bob Lied",
+ "id" : "Bob Lied",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Bob Lied"
+ ]
},
{
"data" : [
@@ -205,24 +88,24 @@
"name" : "David Ferrone"
},
{
- "id" : "E. Choroba",
"data" : [
[
"Perl",
2
]
],
+ "id" : "E. Choroba",
"name" : "E. Choroba"
},
{
"id" : "Jan Krnavek",
+ "name" : "Jan Krnavek",
"data" : [
[
"Raku",
1
]
- ],
- "name" : "Jan Krnavek"
+ ]
},
{
"data" : [
@@ -239,38 +122,36 @@
"name" : "Jorg Sommrey"
},
{
- "name" : "Lubos Kolouch",
"data" : [
[
"Perl",
2
]
],
+ "name" : "Lubos Kolouch",
"id" : "Lubos Kolouch"
},
{
"name" : "Mark Anderson",
+ "id" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Mark Anderson"
+ ]
},
{
"id" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Niels van Dijke"
+ ]
},
{
- "name" : "Peter Campbell Smith",
- "id" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -280,20 +161,21 @@
"Blog",
1
]
- ]
+ ],
+ "name" : "Peter Campbell Smith",
+ "id" : "Peter Campbell Smith"
},
{
- "name" : "Peter Meszaros",
"data" : [
[
"Perl",
2
]
],
- "id" : "Peter Meszaros"
+ "id" : "Peter Meszaros",
+ "name" : "Peter Meszaros"
},
{
- "name" : "Robbie Hatley",
"data" : [
[
"Perl",
@@ -304,21 +186,20 @@
1
]
],
+ "name" : "Robbie Hatley",
"id" : "Robbie Hatley"
},
{
- "id" : "Robert Ransbottom",
"data" : [
[
"Raku",
2
]
],
+ "id" : "Robert Ransbottom",
"name" : "Robert Ransbottom"
},
{
- "name" : "Roger Bell_West",
- "id" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -332,7 +213,9 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Roger Bell_West",
+ "name" : "Roger Bell_West"
},
{
"name" : "Simon Green",
@@ -349,8 +232,6 @@
]
},
{
- "name" : "Thomas Kohler",
- "id" : "Thomas Kohler",
"data" : [
[
"Perl",
@@ -360,11 +241,11 @@
"Blog",
2
]
- ]
+ ],
+ "id" : "Thomas Kohler",
+ "name" : "Thomas Kohler"
},
{
- "name" : "Ulrich Rieke",
- "id" : "Ulrich Rieke",
"data" : [
[
"Perl",
@@ -374,7 +255,9 @@
"Raku",
2
]
- ]
+ ],
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke"
},
{
"data" : [
@@ -389,19 +272,151 @@
],
"id" : "W. Luis Mochan",
"name" : "W. Luis Mochan"
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ],
+ "name" : "Wanderdoc",
+ "id" : "Wanderdoc"
}
]
},
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
- }
- },
"xAxis" : {
"type" : "category"
+ },
+ "series" : [
+ {
+ "colorByPoint" : 1,
+ "name" : "The Weekly Challenge - 306",
+ "data" : [
+ {
+ "y" : 2,
+ "drilldown" : "Andreas Mahnke",
+ "name" : "Andreas Mahnke"
+ },
+ {
+ "y" : 3,
+ "name" : "Arne Sommer",
+ "drilldown" : "Arne Sommer"
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Athanasius",
+ "name" : "Athanasius"
+ },
+ {
+ "name" : "BarrOff",
+ "drilldown" : "BarrOff",
+ "y" : 1
+ },
+ {
+ "y" : 2,
+ "name" : "Bob Lied",
+ "drilldown" : "Bob Lied"
+ },
+ {
+ "drilldown" : "David Ferrone",
+ "name" : "David Ferrone",
+ "y" : 2
+ },
+ {
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Jan Krnavek",
+ "name" : "Jan Krnavek",
+ "y" : 1
+ },
+ {
+ "drilldown" : "Jorg Sommrey",
+ "name" : "Jorg Sommrey",
+ "y" : 3
+ },
+ {
+ "name" : "Lubos Kolouch",
+ "drilldown" : "Lubos Kolouch",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Mark Anderson",
+ "name" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
+ "y" : 2
+ },
+ {
+ "name" : "Peter Campbell Smith",
+ "drilldown" : "Peter Campbell Smith",
+ "y" : 3
+ },
+ {
+ "y" : 2,
+ "name" : "Peter Meszaros",
+ "drilldown" : "Peter Meszaros"
+ },
+ {
+ "drilldown" : "Robbie Hatley",
+ "name" : "Robbie Hatley",
+ "y" : 3
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Robert Ransbottom",
+ "name" : "Robert Ransbottom"
+ },
+ {
+ "drilldown" : "Roger Bell_West",
+ "name" : "Roger Bell_West",
+ "y" : 5
+ },
+ {
+ "name" : "Simon Green",
+ "drilldown" : "Simon Green",
+ "y" : 3
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Thomas Kohler",
+ "name" : "Thomas Kohler"
+ },
+ {
+ "y" : 4,
+ "name" : "Ulrich Rieke",
+ "drilldown" : "Ulrich Rieke"
+ },
+ {
+ "y" : 3,
+ "drilldown" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
+ },
+ {
+ "y" : 1,
+ "name" : "Wanderdoc",
+ "drilldown" : "Wanderdoc"
+ }
+ ]
+ }
+ ],
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "tooltip" : {
+ "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>",
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
+ "followPointer" : 1
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 306"
}
}
diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json
index 92382ab9c8..46ed4d3028 100644
--- a/stats/pwc-language-breakdown-2019.json
+++ b/stats/pwc-language-breakdown-2019.json
@@ -1,228 +1,19 @@
{
- "title" : {
- "text" : "The Weekly Challenge Language"
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-02-02 20:56:54 GMT"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
+ }
},
"chart" : {
"type" : "column"
},
- "tooltip" : {
- "followPointer" : "true",
- "headerFormat" : "<span style=\"font-size:11px\"></span>",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
- },
- "series" : [
- {
- "data" : [
- {
- "drilldown" : "041",
- "y" : 80,
- "name" : "041"
- },
- {
- "name" : "040",
- "y" : 77,
- "drilldown" : "040"
- },
- {
- "drilldown" : "039",
- "y" : 68,
- "name" : "039"
- },
- {
- "name" : "038",
- "y" : 74,
- "drilldown" : "038"
- },
- {
- "name" : "037",
- "drilldown" : "037",
- "y" : 70
- },
- {
- "y" : 70,
- "drilldown" : "036",
- "name" : "036"
- },
- {
- "name" : "035",
- "drilldown" : "035",
- "y" : 68
- },
- {
- "y" : 70,
- "drilldown" : "034",
- "name" : "034"
- },
- {
- "y" : 113,
- "drilldown" : "033",
- "name" : "033"
- },
- {
- "name" : "032",
- "y" : 97,
- "drilldown" : "032"
- },
- {
- "drilldown" : "031",
- "y" : 93,
- "name" : "031"
- },
- {
- "name" : "030",
- "drilldown" : "030",
- "y" : 120
- },
- {
- "y" : 83,
- "drilldown" : "029",
- "name" : "029"
- },
- {
- "drilldown" : "028",
- "y" : 82,
- "name" : "028"
- },
- {
- "y" : 64,
- "drilldown" : "027",
- "name" : "027"
- },
- {
- "name" : "026",
- "y" : 75,
- "drilldown" : "026"
- },
- {
- "name" : "025",
- "drilldown" : "025",
- "y" : 62
- },
- {
- "name" : "024",
- "drilldown" : "024",
- "y" : 77
- },
- {
- "name" : "023",
- "drilldown" : "023",
- "y" : 88
- },
- {
- "name" : "022",
- "y" : 72,
- "drilldown" : "022"
- },
- {
- "name" : "021",
- "drilldown" : "021",
- "y" : 72
- },
- {
- "name" : "020",
- "y" : 100,
- "drilldown" : "020"
- },
- {
- "drilldown" : "019",
- "y" : 101,
- "name" : "019"
- },
- {
- "name" : "018",
- "y" : 82,
- "drilldown" : "018"
- },
- {
- "name" : "017",
- "y" : 83,
- "drilldown" : "017"
- },
- {
- "y" : 75,
- "drilldown" : "016",
- "name" : "016"
- },
- {
- "y" : 95,
- "drilldown" : "015",
- "name" : "015"
- },
- {
- "y" : 98,
- "drilldown" : "014",
- "name" : "014"
- },
- {
- "name" : "013",
- "drilldown" : "013",
- "y" : 85
- },
- {
- "y" : 90,
- "drilldown" : "012",
- "name" : "012"
- },
- {
- "name" : "011",
- "drilldown" : "011",
- "y" : 86
- },
- {
- "name" : "010",
- "y" : 69,
- "drilldown" : "010"
- },
- {
- "drilldown" : "009",
- "y" : 79,
- "name" : "009"
- },
- {
- "drilldown" : "008",
- "y" : 82,
- "name" : "008"
- },
- {
- "name" : "007",
- "drilldown" : "007",
- "y" : 71
- },
- {
- "name" : "006",
- "y" : 63,
- "drilldown" : "006"
- },
- {
- "y" : 82,
- "drilldown" : "005",
- "name" : "005"
- },
- {
- "y" : 106,
- "drilldown" : "004",
- "name" : "004"
- },
- {
- "y" : 91,
- "drilldown" : "003",
- "name" : "003"
- },
- {
- "drilldown" : "002",
- "y" : 133,
- "name" : "002"
- },
- {
- "y" : 165,
- "drilldown" : "001",
- "name" : "001"
- }
- ],
- "name" : "The Weekly Challenge Languages",
- "colorByPoint" : "true"
- }
- ],
"legend" : {
"enabled" : "false"
},
@@ -230,6 +21,7 @@
"series" : [
{
"name" : "041",
+ "id" : "041",
"data" : [
[
"Perl",
@@ -243,8 +35,7 @@
"Blog",
9
]
- ],
- "id" : "041"
+ ]
},
{
"name" : "040",
@@ -265,8 +56,6 @@
]
},
{
- "name" : "039",
- "id" : "039",
"data" : [
[
"Perl",
@@ -280,9 +69,13 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "039",
+ "id" : "039"
},
{
+ "name" : "038",
+ "id" : "038",
"data" : [
[
"Perl",
@@ -296,12 +89,9 @@
"Blog",
12
]
- ],
- "id" : "038",
- "name" : "038"
+ ]
},
{
- "id" : "037",
"data" : [
[
"Perl",
@@ -316,9 +106,11 @@
9
]
],
- "name" : "037"
+ "name" : "037",
+ "id" : "037"
},
{
+ "id" : "036",
"name" : "036",
"data" : [
[
@@ -333,11 +125,9 @@
"Blog",
11
]
- ],
- "id" : "036"
+ ]
},
{
- "id" : "035",
"data" : [
[
"Perl",
@@ -352,6 +142,7 @@
9
]
],
+ "id" : "035",
"name" : "035"
},
{
@@ -373,8 +164,6 @@
]
},
{
- "name" : "033",
- "id" : "033",
"data" : [
[
"Perl",
@@ -388,11 +177,13 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "033",
+ "name" : "033"
},
{
- "name" : "032",
"id" : "032",
+ "name" : "032",
"data" : [
[
"Perl",
@@ -409,6 +200,7 @@
]
},
{
+ "id" : "031",
"name" : "031",
"data" : [
[
@@ -423,10 +215,11 @@
"Blog",
9
]
- ],
- "id" : "031"
+ ]
},
{
+ "id" : "030",
+ "name" : "030",
"data" : [
[
"Perl",
@@ -440,12 +233,11 @@
"Blog",
10
]
- ],
- "id" : "030",