aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2024-05-25 17:34:42 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2024-05-25 17:34:42 +0100
commit1ce1e129f55753ee1392704f7c219c40cbee1eb8 (patch)
tree89cb59c979cb8160fbbd9a0acc16c27eb77f330c
parent92803643349bfb84e214bdf278e7447230b19e35 (diff)
downloadperlweeklychallenge-club-1ce1e129f55753ee1392704f7c219c40cbee1eb8.tar.gz
perlweeklychallenge-club-1ce1e129f55753ee1392704f7c219c40cbee1eb8.tar.bz2
perlweeklychallenge-club-1ce1e129f55753ee1392704f7c219c40cbee1eb8.zip
- Added blog post by Dave Jacoby.
- Added solutions by Jorg Sommrey. - Added solutions by Athanasius. - Added solutions by Laurent Rosenfeld. - Added solutions by Reinier Maliepaard.
-rw-r--r--challenge-270/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-270/laurent-rosenfeld/perl/ch-1.pl43
-rw-r--r--challenge-270/laurent-rosenfeld/raku/ch-1.raku32
-rw-r--r--challenge-270/reinier-maliepaard/blog.txt1
-rw-r--r--challenge-270/reinier-maliepaard/blog1.txt1
-rw-r--r--challenge-270/reinier-maliepaard/perl/ch-1.pl106
-rw-r--r--challenge-270/reinier-maliepaard/perl/ch-2.pl196
-rw-r--r--stats/pwc-current.json218
-rw-r--r--stats/pwc-language-breakdown-summary.json64
-rw-r--r--stats/pwc-language-breakdown.json1900
-rw-r--r--stats/pwc-leaders.json420
-rw-r--r--stats/pwc-summary-1-30.json118
-rw-r--r--stats/pwc-summary-121-150.json56
-rw-r--r--stats/pwc-summary-151-180.json110
-rw-r--r--stats/pwc-summary-181-210.json104
-rw-r--r--stats/pwc-summary-211-240.json86
-rw-r--r--stats/pwc-summary-241-270.json32
-rw-r--r--stats/pwc-summary-271-300.json120
-rw-r--r--stats/pwc-summary-301-330.json28
-rw-r--r--stats/pwc-summary-31-60.json90
-rw-r--r--stats/pwc-summary-61-90.json40
-rw-r--r--stats/pwc-summary-91-120.json48
-rw-r--r--stats/pwc-summary.json70
23 files changed, 2174 insertions, 1710 deletions
diff --git a/challenge-270/laurent-rosenfeld/blog.txt b/challenge-270/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..d25dfcd448
--- /dev/null
+++ b/challenge-270/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+https://blogs.perl.org/users/laurent_r/2024/05/-perl-weekly-challenge-270-special-positions.html
diff --git a/challenge-270/laurent-rosenfeld/perl/ch-1.pl b/challenge-270/laurent-rosenfeld/perl/ch-1.pl
new file mode 100644
index 0000000000..c057b612d9
--- /dev/null
+++ b/challenge-270/laurent-rosenfeld/perl/ch-1.pl
@@ -0,0 +1,43 @@
+use strict;
+use warnings;
+use feature 'say';
+
+sub special_positions {
+ my $mat = shift;
+ my $row_max = $#{$mat->[0]};
+ my $col_max = $#{$mat};
+ my $count = 0;
+ for my $i (0..$row_max) {
+ IND_J: for my $j (0..$col_max) {
+ next if $mat->[$i][$j] != 1;
+ # check row
+ for my $m (0..$row_max) {
+ next if $m == $i;
+ next IND_J unless $mat->[$m][$j] == 0;
+ }
+ # check column
+ for my $k (0..$col_max) {
+ next if $k == $j;
+ next IND_J unless $mat->[$i][$k] == 0;
+ }
+ # say "$i, $j"; # uncomment to see the positions
+ $count++;
+ }
+ }
+ return $count;
+}
+
+my @tests = (
+ [ [1, 0, 0],
+ [0, 0, 1],
+ [1, 0, 0],
+ ],
+ [ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1],
+ ]
+ );
+for my $test (@tests) {
+ printf "[%-8s %-8s ...] => ", "@{$test->[0]}", "@{$test->[1]}";
+ say special_positions $test;
+}
diff --git a/challenge-270/laurent-rosenfeld/raku/ch-1.raku b/challenge-270/laurent-rosenfeld/raku/ch-1.raku
new file mode 100644
index 0000000000..20f6a766a0
--- /dev/null
+++ b/challenge-270/laurent-rosenfeld/raku/ch-1.raku
@@ -0,0 +1,32 @@
+sub special-positions (@mat) {
+ my $row-max = @mat[0].end;
+ my $count = 0;
+ IND_I: for 0..$row-max -> $i {
+ for 0..@mat.end -> $j { `
+ next if @mat[$i][$j] != 1;
+ next unless
+ (@mat[$i][0..^$j, $j^..$row-max]).any != 0;
+ for 0..@mat.end -> $k {
+ next if $k == $i;
+ next IND_I unless @mat[$i][$k] == 0;
+ }
+ # say "$i, $j"; # uncomment to see the positions
+ $count++;
+ }
+ }
+ return $count;
+}
+
+my @tests =
+ [ [1, 0, 0],
+ [0, 0, 1],
+ [1, 0, 0],
+ ],
+ [ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1],
+ ];
+for @tests -> @test {
+ printf "%-8s %-8s ... => ", "@test[0]", "@test[1]";
+ say special-positions @test;
+}
diff --git a/challenge-270/reinier-maliepaard/blog.txt b/challenge-270/reinier-maliepaard/blog.txt
new file mode 100644
index 0000000000..52cfaba42e
--- /dev/null
+++ b/challenge-270/reinier-maliepaard/blog.txt
@@ -0,0 +1 @@
+https://reiniermaliepaard.nl/perl/pwc/index.php?id=pwc270
diff --git a/challenge-270/reinier-maliepaard/blog1.txt b/challenge-270/reinier-maliepaard/blog1.txt
new file mode 100644
index 0000000000..e7b997a081
--- /dev/null
+++ b/challenge-270/reinier-maliepaard/blog1.txt
@@ -0,0 +1 @@
+https://reiniermaliepaard.nl/perl/pwc/index.php?id=pwc270-2
diff --git a/challenge-270/reinier-maliepaard/perl/ch-1.pl b/challenge-270/reinier-maliepaard/perl/ch-1.pl
new file mode 100644
index 0000000000..de03267ecf
--- /dev/null
+++ b/challenge-270/reinier-maliepaard/perl/ch-1.pl
@@ -0,0 +1,106 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Math::Matrix;
+
+# the function 'sum_rows_and_columns' is invoked in the function 'find_special_positions' below
+sub sum_rows_and_columns {
+
+ # A special positions matrix highlights positions that meet
+ # the specific criterium, having a unique '1' in its row and column.
+ # So, it simply means adding the values of the relevant rows and columns and evaluating them
+
+ my ($r, $c, $x) = @_;
+ my $count_special_positions = 0;
+
+ # nrow(), ncol(), getrow() and getcol() are self-explanatory methods of the module Math::Matrix
+
+ my $sum_rows = 0;
+ for my $ii (0 .. $x -> ncol() - 1) {
+ $sum_rows += ($x -> getrow($r))->[0]->[$ii];
+ }
+
+ my $sum_cols = 0;
+ for my $ii (0 .. $x -> nrow() - 1) {
+ $sum_cols += ($x -> getcol($c))->[$ii]->[0];
+ }
+
+ # evaluate the calculated sum of row and column
+ if ( ($sum_rows == 1) && ($sum_cols == 1) ) {
+ $count_special_positions++;
+ }
+
+ return $count_special_positions;
+}
+
+sub find_special_positions {
+
+ my ($x) = @_;
+ # a boolean matrix is a matrix whose entries are either 0 or 1
+ if ( $x -> is_bool() ) {
+
+ # find() returns the location of each non-zero element in terms of $i and $j.
+ # e.g. (0, 0), (1, 2) and (2, 0) are the coordinates of value 1 in Example 1 below
+ # they can be created by processing @$i and @$j: see arguments function
+ my($i, $j) = $x -> find();
+
+ my $sum_total = 0;
+
+ for my $z (0 .. scalar(@$i) - 1) {
+ # invoke the function 'sum_rows_and_columns' for each '1'
+ $sum_total += sum_rows_and_columns($i->[$z], $j->[$z], $x);
+ }
+
+ print("Number of special positions: ", $sum_total, "\n");
+ }
+ else {
+ print("Error: no valid matrix!\n");
+ }
+}
+
+# TESTS
+
+my $x;
+
+# Example 1: 3 x 3 matrix
+$x = Math::Matrix -> new([1, 0, 0],
+ [0, 0, 1],
+ [1, 0, 0]);
+
+find_special_positions($x); # Output: 1
+
+# Example 2: 3 x 3 matrix
+$x = Math::Matrix -> new([1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1]);
+
+find_special_positions($x); # Output: 3
+
+# Example 3: 3 x 3 matrix
+$x = Math::Matrix -> new([1, 0, 0],
+ [0, 0, 1],
+ [1, 0, 1]);
+
+find_special_positions($x); # Output: 0
+
+# Example 4: permutation matrix, 3 x 3 matrix
+$x = Math::Matrix -> new([0, 1, 0],
+ [1, 0, 0],
+ [0, 0, 1]);
+
+find_special_positions($x); # Output: 3
+
+# Example 5: 3 x 4 matrix
+$x = Math::Matrix -> new([0, 1, 0, 0],
+ [0, 0, 0, 1],
+ [0, 0, 1, 0]);
+
+find_special_positions($x); # Output: 3
+
+# Example 6: 4 x 3 matrix
+$x = Math::Matrix -> new([0, 1, 0],
+ [0, 0, 0],
+ [0, 0, 1],
+ [0, 0, 1]);
+
+find_special_positions($x); # Output: 1
diff --git a/challenge-270/reinier-maliepaard/perl/ch-2.pl b/challenge-270/reinier-maliepaard/perl/ch-2.pl
new file mode 100644
index 0000000000..d57ca11648
--- /dev/null
+++ b/challenge-270/reinier-maliepaard/perl/ch-2.pl
@@ -0,0 +1,196 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+=begin
+
+It was fun to think about a solution for TASK #2: Equalize array.
+The result seems unconventional. I tested it with 10 cases (see below) and
+used the solution from Packy Anderson to validate my results,
+encountering no issues. However, I don't provide a solid mathematical proof.
+
+My solution is programmatically very straightforward! It demonstrates
+Perl's excellent capability to interchange arrays, strings and numbers.
+Now, let me explain my strategy.
+
+Case 1: array with two elements
+Equalizing the array (1 4) to (4 4) involves the following steps
+(notice that not the maximum value -as in Mohammads examples- but 0 is
+my target. So not adding but subtracting. It appears to have advantages:
+see below):
+
+Array: (1 4);
+Reverse sorted: (4 1)
+Maximum value: 4
+New array (except the maximum value) containing differences between the
+maximum value and the original values of the array elements: (3).
+
+Operations with the number 1 as subtrahend:
+
+3 - 1 = 2 (1 × Level 1)
+2 - 1 = 1 (1 × Level 1)
+1 - 1 = 0, i.e. target 0 found (1 × Level 1)
+
+So there are 3 Level 1 operations needed to equalize the array, i.e. the
+number of Level 1 operations equals the value of the array element. To
+determine the total cost, we need to multiply by the cost variables $x:
+(1 Level 1 operation * $x).
+
+Case 2a: array with more than two elements
+Let's consider an array with more than two elements, for example, the
+array (1 3 2). Here are the steps I follow:
+
+Array: (1 3 2);
+Reverse sorted: (3 2 1)
+Maximum value: 3
+New array (except the maximum value) containing differences between the
+maximum value and the original values of the array elements: (1 2).
+
+This array can be transformed into the number 12. We can simulate Level 2
+operations by using the number 11 as subtrahend. My assumption here is
+that normal subtraction is the most efficient method to find the lowest
+cost solution, but I could be completely wrong. Again, I must leave you
+without a solid mathematical proof.
+
+Operations:
+
+12 - 11 = 1 (1 × Level 2)
+1 - 1 = 0 i.e. target 0 found (1 × Level 1)
+
+To determine the total cost, we need to multiply by the cost variables
+$x and $y: (1 Level 2 operation * $y) + (1 Level 1 operation * $x).
+
+Case 2b: array with more than two elements
+Here's another example to show how to handle the number 0, which indicates
+that the difference to the maximum value has been reached.
+
+Array: (2 3 3 3 5);
+Reverse sorted: (5 3 3 3 2)
+Maximum value: 5
+New array (except the maximum value) containing differences between the
+maximum value and the original values of the array elements: (2 2 2 3).
+Conversion: number to work with is 2223
+
+Operations:
+
+2223 - 11 = 2212 (1 x Level 2)
+2212 - 11 = 2201 (1 x Level 2)
+Now we remove the value 0 (target 0 found) -> 221
+221 - 11 = 210 (1 x Level 2)
+Now we remove the value 0 -> 21
+21 - 11 = 10 (1 x Level 2)
+Now we remove the value 0 -> 1
+1 < 11 so 1 refers to 1 Level 1 operation.
+So 4 Level 2 operations and 1 Level 1 operation.
+
+To determine the total cost, we need to multiply by the cost variables
+$x and $y: (4 Level 2 operation * $y) + (1 Level 1 operation * $x).
+=cut
+
+sub equalize_array {
+
+ # $x and $y are cost variables
+ my ($arr_orig_ref, $x, $y) = @_;
+
+ my @arr_orig = @$arr_orig_ref;
+
+ # sort array in descending order
+ my @arr_orig_sorted = (sort {$b <=> $a} @arr_orig);
+
+ # now the first element has the maximum value
+ my $max = $arr_orig_sorted[0];
+
+ # remove the first value, i.e. the maximum value
+ shift(@arr_orig_sorted);
+
+ # create a new array where each element is the result of
+ subtracting the original value from the maximum value in @arr_orig
+ my @new_arr = map { $max - $_ } @arr_orig_sorted;
+
+ # $L1 refers to Level 1 and $L2 to Level 2
+ # Example: there were two Level 2 operations if $L2 equals 2 etc.
+ my $L1 = 0;
+ my $L2 = 0;
+
+ # the simplest case where the number of Level 1 operations equals the value of the array element
+ # see Example 1 below: it takes 4 minus 1 Level 1 operations to equalize the array.
+ if (scalar(@new_arr) == 1) {
+
+ $L1 = $new_arr[0];
+ return ($L1 * $x);
+ }
+
+ # using the number trick
+ if (scalar(@new_arr) > 1) {
+
+ # create a number from @new_arr
+ my $no = join ("", @new_arr);
+
+ # number 11 as subtrahend, simulating a Level 2 operation
+ while ($no >= 11) {
+ $no -= 11;
+ $L2++;
+ # remove 0 from $no; 0 means 'target found'
+ $no =~ s/0//g if( index ($no, '0') );
+ }
+
+ $L1 = $no if ($no != 0);
+
+ ($L1 != 0) ? (return ( ($L1 * $x) + ($L2 * $y) )) : (return ($L2 * $y));
+ }
+}
+
+# TESTS
+
+my (@arr, $x, $y);
+
+@arr = qw(4 1);
+$x = 3;
+$y = 2;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 9
+
+@arr = qw(2 3 3 3 5);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 6
+
+@arr = qw(4 2 1);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 4
+
+@arr = qw(5 4 3 2 1);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 5
+
+@arr = qw(22 1);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 42
+
+@arr = qw(4 2 2 1);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 5
+
+@arr = qw(3 2 1);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 3
+
+@arr = qw(5 3 1);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 6
+
+@arr = qw(3 2 2 1);
+$x = 2;
+$y = 1;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 2
+
+# Niels van Dijke test case
+@arr = qw(3 3 4 4);
+$x = 1;
+$y = 2;
+print("Total cost : ", equalize_array(\@arr, $x, $y), "\n"); # Output: 2
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 378a6e54ca..23447669f0 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,47 +1,93 @@
{
- "chart" : {
- "type" : "column"
- },
- "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
},
"drilldown" : {
"series" : [
{
- "id" : "Dave Jacoby",
+ "name" : "Athanasius",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Athanasius"
+ },
+ {
"name" : "Dave Jacoby",
+ "id" : "Dave Jacoby",
"data" : [
[
"Perl",
2
+ ],
+ [
+ "Blog",
+ 1
]
]
},
{
+ "name" : "David Ferrone",
"data" : [
[
"Perl",
1
]
],
- "name" : "David Ferrone",
"id" : "David Ferrone"
},
{
"data" : [
[
"Perl",
+ 2
+ ],
+ [
+ "Blog",
1
]
],
+ "id" : "Jorg Sommrey",
+ "name" : "Jorg Sommrey"
+ },
+ {
+ "name" : "Lance Wicks",
"id" : "Lance Wicks",
- "name" : "Lance Wicks"
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ]
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 1
+ ],
+ [
+ "Raku",
+ 1
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ],
+ "id" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld"
},
{
"name" : "Luca Ferrari",
- "id" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -51,31 +97,30 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "Luca Ferrari"
},
{
- "id" : "Mark Anderson",
- "name" : "Mark Anderson",
"data" : [
[
"Raku",
1
]
- ]
+ ],
+ "id" : "Mark Anderson",
+ "name" : "Mark Anderson"
},
{
+ "id" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
],
- "name" : "Niels van Dijke",
- "id" : "Niels van Dijke"
+ "name" : "Niels van Dijke"
},
{
- "name" : "Peter Campbell Smith",
- "id" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -85,11 +130,13 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Peter Campbell Smith",
+ "name" : "Peter Campbell Smith"
},
{
- "id" : "Peter Meszaros",
"name" : "Peter Meszaros",
+ "id" : "Peter Meszaros",
"data" : [
[
"Perl",
@@ -98,22 +145,34 @@
]
},
{
+ "name" : "Reinier Maliepaard",
"data" : [
[
"Perl",
2
],
[
- "Raku",
+ "Blog",
2
]
],
+ "id" : "Reinier Maliepaard"
+ },
+ {
"name" : "Roger Bell_West",
- "id" : "Roger Bell_West"
+ "id" : "Roger Bell_West",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ]
},
{
- "id" : "Thomas Kohler",
- "name" : "Thomas Kohler",
"data" : [
[
"Perl",
@@ -123,11 +182,11 @@
"Blog",
2
]
- ]
+ ],
+ "id" : "Thomas Kohler",
+ "name" : "Thomas Kohler"
},
{
- "id" : "Ulrich Rieke",
- "name" : "Ulrich Rieke",
"data" : [
[
"Perl",
@@ -137,11 +196,11 @@
"Raku",
2
]
- ]
+ ],
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke"
},
{
- "name" : "W. Luis Mochan",
- "id" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -151,54 +210,51 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
}
]
},
- "title" : {
- "text" : "The Weekly Challenge - 270"
- },
"legend" : {
"enabled" : 0
},
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- },
- "borderWidth" : 0
- }
- },
"subtitle" : {
- "text" : "[Champions: 12] Last updated at 2024-05-24 11:50:57 GMT"
- },
- "xAxis" : {
- "type" : "category"
- },
- "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/>"
+ "text" : "[Champions: 16] Last updated at 2024-05-25 16:30:37 GMT"
},
"series" : [
{
"name" : "The Weekly Challenge - 270",
"data" : [
{
- "y" : 2,
+ "drilldown" : "Athanasius",
+ "y" : 4,
+ "name" : "Athanasius"
+ },
+ {
"name" : "Dave Jacoby",
+ "y" : 3,
"drilldown" : "Dave Jacoby"
},
{
- "y" : 1,
"name" : "David Ferrone",
+ "y" : 1,
"drilldown" : "David Ferrone"
},
{
- "y" : 1,
+ "drilldown" : "Jorg Sommrey",
+ "y" : 3,
+ "name" : "Jorg Sommrey"
+ },
+ {
"name" : "Lance Wicks",
- "drilldown" : "Lance Wicks"
+ "drilldown" : "Lance Wicks",
+ "y" : 1
+ },
+ {
+ "name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld",
+ "y" : 3
},
{
"drilldown" : "Luca Ferrari",
@@ -221,32 +277,60 @@
"name" : "Peter Campbell Smith"
},
{
- "drilldown" : "Peter Meszaros",
"name" : "Peter Meszaros",
+ "drilldown" : "Peter Meszaros",
"y" : 2
},
{
- "name" : "Roger Bell_West",
+ "drilldown" : "Reinier Maliepaard",
"y" : 4,
- "drilldown" : "Roger Bell_West"
+ "name" : "Reinier Maliepaard"
},
{
- "drilldown" : "Thomas Kohler",
- "name" : "Thomas Kohler",
- "y" : 4
+ "y" : 4,
+ "drilldown" : "Roger Bell_West",
+ "name" : "Roger Bell_West"
},
{
+ "drilldown" : "Thomas Kohler",
"y" : 4,
+ "name" : "Thomas Kohler"
+ },
+ {
"name" : "Ulrich Rieke",
- "drilldown" : "Ulrich Rieke"
+ "drilldown" : "Ulrich Rieke",
+ "y" : 4
},
{
- "y" : 3,
"name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan"
+ "drilldown" : "W. Luis Mochan",
+ "y" : 3
}
],
"colorByPoint" : 1
}
- ]
+ ],
+ "xAxis" : {
+ "type" : "category"
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 270"
+ }
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index e6f4be02ef..581e32a794 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,52 +1,40 @@
{
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
"series" : [
{
- "name" : "Contributions",
+ "dataLabels" : {
+ "color" : "#FFFFFF",
+ "align" : "right",
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ },
+ "format" : "{point.y:.0f}",
+ "enabled" : "true",
+ "y" : 10,
+ "rotation" : -90
+ },
"data" : [
[
"Blog",
- 4879
+ 4884
],
[
"Perl",
- 13975
+ 13982
],
[
"Raku",
- 8107
+ 8110
]
],
- "dataLabels" : {
- "color" : "#FFFFFF",
- "rotation" : -90,
- "enabled" : "true",
- "format" : "{point.y:.0f}",
- "y" : 10,
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- },
- "align" : "right"
- }
+ "name" : "Contributions"
}
],
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- }
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
"subtitle" : {
- "text" : "Last updated at 2024-05-24 11:50:57 GMT"
- },
- "legend" : {
- "enabled" : "false"
+ "text" : "Last updated at 2024-05-25 16:30:37 GMT"
},
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2024]"
@@ -59,5 +47,17 @@
},
"chart" : {
"type" : "column"
+ },
+ "xAxis" : {
+ "labels" : {
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ }
+ },
+ "type" : "category"
+ },
+ "legend" : {
+ "enabled" : "false"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 07845bf7c2..a465202a8c 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,8 +1,26 @@
{
- "tooltip" : {
- "followPointer" : "true",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
- "headerFormat" : "<span style=\"font-size:11px\"></span>"
+ "legend" : {
+ "enabled" : "false"
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
+ "title" : {
+ "text" : "The Weekly Challenge Language"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "chart" : {
+ "type" : "column"
},
"xAxis" : {
"type" : "category"
@@ -11,44 +29,44 @@
{
"data" : [
{
- "name" : "#001",
"y" : 168,
- "drilldown" : "001"
+ "drilldown" : "001",
+ "name" : "#001"
},
{
+ "name" : "#002",
"drilldown" : "002",
- "y" : 133,
- "name" : "#002"
+ "y" : 133
},