aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2023-01-02 04:57:01 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2023-01-02 04:57:01 +0000
commit5d3aa9b2255c96c148cedb5a2df5aa113fe70520 (patch)
tree25feac396555cdd0f850dd6fb48c28998046522f
parent73a4d4e1018d40d59b31f7acbe493d60916d96dc (diff)
downloadperlweeklychallenge-club-5d3aa9b2255c96c148cedb5a2df5aa113fe70520.tar.gz
perlweeklychallenge-club-5d3aa9b2255c96c148cedb5a2df5aa113fe70520.tar.bz2
perlweeklychallenge-club-5d3aa9b2255c96c148cedb5a2df5aa113fe70520.zip
- Added solutions by Colin Crain.
-rw-r--r--challenge-197/colin-crain/blog.txt1
-rwxr-xr-xchallenge-197/colin-crain/perl/ch-1.pl61
-rwxr-xr-xchallenge-197/colin-crain/perl/ch-2.pl205
-rw-r--r--stats/pwc-current.json487
-rw-r--r--stats/pwc-language-breakdown-summary.json46
-rw-r--r--stats/pwc-language-breakdown.json2738
-rw-r--r--stats/pwc-leaders.json752
-rw-r--r--stats/pwc-summary-1-30.json52
-rw-r--r--stats/pwc-summary-121-150.json102
-rw-r--r--stats/pwc-summary-151-180.json26
-rw-r--r--stats/pwc-summary-181-210.json18
-rw-r--r--stats/pwc-summary-211-240.json42
-rw-r--r--stats/pwc-summary-241-270.json118
-rw-r--r--stats/pwc-summary-271-300.json36
-rw-r--r--stats/pwc-summary-31-60.json108
-rw-r--r--stats/pwc-summary-61-90.json42
-rw-r--r--stats/pwc-summary-91-120.json26
-rw-r--r--stats/pwc-summary.json616
18 files changed, 2881 insertions, 2595 deletions
diff --git a/challenge-197/colin-crain/blog.txt b/challenge-197/colin-crain/blog.txt
new file mode 100644
index 0000000000..38c56c3361
--- /dev/null
+++ b/challenge-197/colin-crain/blog.txt
@@ -0,0 +1 @@
+https://colincrain.com/2023/01/02/add-a-little-wiggle-room
diff --git a/challenge-197/colin-crain/perl/ch-1.pl b/challenge-197/colin-crain/perl/ch-1.pl
new file mode 100755
index 0000000000..4ab94a4356
--- /dev/null
+++ b/challenge-197/colin-crain/perl/ch-1.pl
@@ -0,0 +1,61 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# move-zero.pl
+#
+# Move Zero
+# Submitted by: Mohammad S Anwar
+#
+# You are given a list of integers, @list.
+#
+# Write a script to move all zero, if exists, to the end while
+# maintaining the relative order of non-zero elements.
+#
+#
+# Example 1
+# Input: @list = (1, 0, 3, 0, 0, 5)
+# Output: (1, 3, 5, 0, 0, 0)
+#
+# Example 2
+# Input: @list = (1, 6, 4)
+# Output: (1, 6, 4)
+#
+# Example 3
+# Input: @list = (0, 1, 0, 2, 0
+# Output: (1, 2, 0, 0, 0)
+#
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+
+
+my @input = (1,0,0,4,5,0,7);
+say "input: @input";
+
+
+my $idx;
+my $limit = $#input;
+
+while (++$idx < $limit) {
+ if ($input[$idx] == 0) {
+ push @input, (splice @input, $idx, 1);
+ $idx--;
+ $limit--;
+ }
+}
+
+say "output: @input";
+
+
+
+
+
+
diff --git a/challenge-197/colin-crain/perl/ch-2.pl b/challenge-197/colin-crain/perl/ch-2.pl
new file mode 100755
index 0000000000..d48f626d13
--- /dev/null
+++ b/challenge-197/colin-crain/perl/ch-2.pl
@@ -0,0 +1,205 @@
+#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl
+#
+# wiggling-out-of-trouble.pl
+#
+# Wiggle Sort
+# Submitted by: Mohammad S Anwar
+# You are given a list of integers, @list.
+#
+# Write a script to perform Wiggle Sort on the given list.
+#
+#
+# Wiggle sort would be such as
+# list[0] < list[1] > list[2] < list[3]….
+#
+#
+# Example 1
+# Input: @list = (1,5,1,1,6,4)
+# Output: (1,6,1,5,1,4)
+#
+# Example 2
+# Input: @list = (1,3,2,2,3,1)
+# Output: (2,3,1,3,1,2)
+#
+#
+# method
+#
+# What is a wiggle sort? Beyond the immediate series of
+# conditionals that need apply the actual final sequencing seems
+# prety undefined. For example, there are a number of valid
+# solutions for the first example in addition to the one given,
+# such as (1,4,1,5,1,6) and (1,5,1,4,1,6). In fact there are six,
+# and no method is defined to select a single solution.
+#
+# Further, from the same example multiple occurances of a value are
+# obviously allowed, but no provision is made for when no valid
+# wiggle ordering can be made. Consider, for instance, a list
+# (2,2,2,2,2). We can plainly see that as no value is greater than
+# any other no solution exists that will satisfy the very first
+# conditional we come across: the second element must be greater
+# than the first.
+#
+# I believe if the values were unique we could determine there
+# would exist at minimum one solution for every array. But this is
+# not the case, determining whether an array is solvable at all is
+# not obvious. Can we narrow this down?
+#
+# If more than ceiling(length/2) elements are the same we will run
+# out of elements to alternate and be forced into a run of adjacent
+# equal values, so that won't work. It might be true that any array
+# satisfying this condition can be made to work.
+#
+# 1,1,1,0,0 cannot work because 0,1,0,1,1 is the only progression
+# going from left to right and it fails at the last element.
+#
+# 1,1,1,0,2 -> no solution, starting from either 0 or 1
+# 1,1,1,2,2 -> 1,2,1,2,1 as the over-half multiple is the smallest
+# 1,1,2,0,0 -> 1,2,0,1,0 or 0,1,0,2,1
+# 1,1,2,2,0 -> 1,2,0,2,1 or 0,2,1,2,0
+#
+# how about 6?
+#
+# 1,2,2,2,3,4 -> 2,3,2,4,1,2 two above, one below
+# 1,1,2,2,2,4 -> 2,4,1,2,1,2 one above, two below
+# 4,4,4,2,2,1 -> 1,4,2,4,2,4 all below
+#
+# it seems the multiple count of a single value can only be larger
+# than floor(length/2) if it is the smallest value, but can be up
+# to and including half the elements placed anywhere. I believe
+# this logic applies downwards as well, meaning divisions smaller
+# than one-half can all be accomodated.
+#
+# I believe, then, if we have no element count over one-half the
+# total elements, or if the count of the most numerous element is
+# ceiling(length/2) and the value in question is the smallest
+# value, then that exists a valid solution.
+#
+# Note the ceiling will only apply when there are an odd number of
+# elements, and we will start with the multiple and alternate the
+# other, higher values in any ordering to create a valid
+# wigglesort. This is obviously an edge case.
+#
+# Multiple elements need to be separated, so if we sort the arrant
+# and divide it into two halves we can pick alternately from either
+# the head or tail from both halves we can create wigglesorts if we
+# are consistent with our choice. This sequential action of
+# alternately taking the same indexed elements from two arrays is
+# sometimes called zipping.
+#
+# We can still get into trouble with an overlapping multiple in the
+# middle. This will determine whether we zip from the head or the
+# tail.
+#
+# Consider (1,2,3,4,2,2,5,2):
+#
+# Sorted and split we get:
+# (1,2,2,2) and (2,3,4,5)
+#
+# head -> (1,2), (2,3), (2,4), (2,5) does not work
+# tail -> (2,5), (2,4), (2,3), (1,2) works
+#
+# So if the multiple in the lower half is more than half that
+# subarray length we will need to start in reverse from the tails,
+# otherwise we can use the heads.
+#
+# Finally, though, in hindsight why even do this last step? There's
+# nothing inherent in the idea of a wigglesort that the result is
+# lexicographically ascending, or even coherent. There's no reason
+# to go from low to high. The problem in the edge case I
+# constructed is that a run of multiples in the middle can overlap
+# if we start from the heads of the subarray halves. Selecting from
+# the tail first separates the overlap, moving the interfering
+# values towards the ends, away from each other.
+#
+# So why not do this always and just be done with it? No particular
+# wigglesort is better than any other. So lets do that. Out with
+# the `no_duplicates()` sub and ant attemot to sort from the heads.
+# This tightens things up rather well. And our `zip()` subroutine
+# might as well be rolled into its `wigglezip()` wrapper.
+#
+# I get the feeling some important information was left out of this
+# description. But I feel this should give us a satisfactory
+# algorithm for finding one valid solution for every array that can
+# have one.
+#
+#
+# © 2022 colin crain
+## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
+
+
+
+use warnings;
+use strict;
+use utf8;
+use feature ":5.26";
+use feature qw(signatures);
+no warnings 'experimental::signatures';
+
+my @input = @ARGV
+ ? @ARGV
+ : (6,4,4,7,4,4,1,8,5,4);
+say "input: @input";
+
+@input = sort {$a<=>$b} @input;
+my @small = @input[0..(@input+1)/2-1]; ## up to ceiling
+my @large = @input[(@input+1)/2..@input-1]; ## rest of array
+
+unless ( has_solution(\@input) ) {
+ say "no solution possible" and exit;
+}
+say "sorted: ", join ' ', wigglezip( \@small, \@large )->@*;
+
+sub has_solution ( $arr ) {
+## checks to see no element is duplicated more than one-half the total
+## length, or the ceiling under the specific circumstance that it is the
+## smallest value in the set
+ my %freq;
+ $freq{$_}++ for $arr->@*;
+ my @range = sort {$b<=>$a} values %freq;
+ return 1 if $range[0] <= scalar($arr->@* )/ 2; ## highest freq value
+ if ($range[0] == int( ($arr->@* + 1)/2 )) { ## ceiling
+ my ($multiple) = grep { $freq{$_} == $range[0] } keys %freq;
+ if ( min( keys %freq ) == $multiple ) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+sub wigglezip ($aref1, $aref2) {
+## zip two arrays from head if this makes a valid wigglesort, else reverse
+## the arrays and zip, resulting with a zip from tails backwards
+ my @low = reverse $aref1->@*;
+ my @high = reverse $aref2->@*;
+ my @zipped;
+
+ for (0..$#low) {
+ push @zipped, $low[$_];
+ push @zipped, $high[$_] unless $_ > $#high; ;
+ }
+
+ return \@zipped;
+}
+
+# sub zip ($aref1, $aref2) {
+# ## nondestructively zip two array references, if array are unequal length
+# ## first is longer
+# my @zipped;
+# for (0..$aref1->$#*) {
+# push @zipped, $aref1->[$_];
+# push @zipped, $aref2->[$_] unless $_ > $aref2->$#* ;
+# }
+# return \@zipped;
+# }
+
+# sub no_duplicates ($arr) {
+# ## check to see if an array does not contain any adjacent duplicated values
+# ## in sequence
+# # say "last |$arr->@*| ", scalar $arr->@*;
+# for (0...($arr->$#*-1)) {
+# # say "idx $_";
+# return 0 if $arr->[$_] == $arr->[$_+1];
+# }
+# return 1;
+# }
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 4518e40433..8b6e0c4196 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,192 +1,9 @@
{
- "series" : [
- {
- "name" : "The Weekly Challenge - 197",
- "data" : [
- {
- "y" : 2,
- "drilldown" : "Adam Russell",
- "name" : "Adam Russell"
- },
- {
- "y" : 4,
- "drilldown" : "Ali Moradi",
- "name" : "Ali Moradi"
- },
- {
- "y" : 3,
- "drilldown" : "Arne Sommer",
- "name" : "Arne Sommer"
- },
- {
- "y" : 4,
- "drilldown" : "Athanasius",
- "name" : "Athanasius"
- },
- {
- "drilldown" : "Bob Lied",
- "y" : 2,
- "name" : "Bob Lied"
- },
- {
- "name" : "Bruce Gray",
- "drilldown" : "Bruce Gray",
- "y" : 2
- },
- {
- "drilldown" : "Carlos Oliveira",
- "y" : 2,
- "name" : "Carlos Oliveira"
- },
- {
- "name" : "Cheok-Yin Fung",
- "y" : 2,
- "drilldown" : "Cheok-Yin Fung"
- },
- {
- "name" : "Dave Jacoby",
- "y" : 2,
- "drilldown" : "Dave Jacoby"
- },
- {
- "name" : "David Ferrone",
- "drilldown" : "David Ferrone",
- "y" : 2
- },
- {
- "y" : 2,
- "drilldown" : "E. Choroba",
- "name" : "E. Choroba"
- },
- {
- "y" : 2,
- "drilldown" : "Feng Chang",
- "name" : "Feng Chang"
- },
- {
- "name" : "Flavio Poletti",
- "y" : 6,
- "drilldown" : "Flavio Poletti"
- },
- {
- "drilldown" : "James Smith",
- "y" : 3,
- "name" : "James Smith"
- },
- {
- "y" : 2,
- "drilldown" : "Jan Krnavek",
- "name" : "Jan Krnavek"
- },
- {
- "name" : "Jorg Sommrey",
- "y" : 2,
- "drilldown" : "Jorg Sommrey"
- },
- {
- "drilldown" : "Laurent Rosenfeld",
- "y" : 5,
- "name" : "Laurent Rosenfeld"
- },
- {
- "y" : 8,
- "drilldown" : "Luca Ferrari",
- "name" : "Luca Ferrari"
- },
- {
- "drilldown" : "Mark Anderson",
- "y" : 2,
- "name" : "Mark Anderson"
- },
- {
- "drilldown" : "Niels van Dijke",
- "y" : 2,
- "name" : "Niels van Dijke"
- },
- {
- "drilldown" : "Pip Stuart",
- "y" : 2,
- "name" : "Pip Stuart"
- },
- {
- "name" : "Robbie Hatley",
- "y" : 3,
- "drilldown" : "Robbie Hatley"
- },
- {
- "y" : 2,
- "drilldown" : "Robert DiCicco",
- "name" : "Robert DiCicco"
- },
- {
- "name" : "Robert Ransbottom",
- "drilldown" : "Robert Ransbottom",
- "y" : 2
- },
- {
- "drilldown" : "Roger Bell_West",
- "y" : 4,
- "name" : "Roger Bell_West"
- },
- {
- "drilldown" : "Simon Green",
- "y" : 3,
- "name" : "Simon Green"
- },
- {
- "drilldown" : "Stephen G. Lynn",
- "y" : 5,
- "name" : "Stephen G. Lynn"
- },
- {
- "name" : "Thomas Kohler",
- "y" : 4,
- "drilldown" : "Thomas Kohler"
- },
- {
- "name" : "Ulrich Rieke",
- "y" : 4,
- "drilldown" : "Ulrich Rieke"
- },
- {
- "y" : 3,
- "drilldown" : "W. Luis Mochan",
- "name" : "W. Luis Mochan"
- }
- ],
- "colorByPoint" : 1
- }
- ],
"title" : {
"text" : "The Weekly Challenge - 197"
},
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- }
- }
- },
- "tooltip" : {
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
- "followPointer" : 1,
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "legend" : {
- "enabled" : 0
- },
- "xAxis" : {
- "type" : "category"
- },
"subtitle" : {
- "text" : "[Champions: 30] Last updated at 2023-01-02 03:56:19 GMT"
+ "text" : "[Champions: 31] Last updated at 2023-01-02 04:53:27 GMT"
},
"drilldown" : {
"series" : [
@@ -229,6 +46,8 @@
]
},
{
+ "name" : "Athanasius",
+ "id" : "Athanasius",
"data" : [
[
"Perl",
@@ -238,9 +57,7 @@
"Raku",
2
]
- ],
- "id" : "Athanasius",
- "name" : "Athanasius"
+ ]
},
{
"data" : [
@@ -263,8 +80,8 @@
]
},
{
- "id" : "Carlos Oliveira",
"name" : "Carlos Oliveira",
+ "id" : "Carlos Oliveira",
"data" : [
[
"Perl",
@@ -273,8 +90,8 @@
]
},
{
- "name" : "Cheok-Yin Fung",
"id" : "Cheok-Yin Fung",
+ "name" : "Cheok-Yin Fung",
"data" : [
[
"Perl",
@@ -283,28 +100,42 @@
]
},
{
+ "id" : "Colin Crain",
+ "name" : "Colin Crain",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
+ },
+ {
"data" : [
[
"Perl",
2
]
],
- "name" : "Dave Jacoby",
- "id" : "Dave Jacoby"
+ "id" : "Dave Jacoby",
+ "name" : "Dave Jacoby"
},
{
- "name" : "David Ferrone",
- "id" : "David Ferrone",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "name" : "David Ferrone",
+ "id" : "David Ferrone"
},
{
- "name" : "E. Choroba",
"id" : "E. Choroba",
+ "name" : "E. Choroba",
"data" : [
[
"Perl",
@@ -313,14 +144,14 @@
]
},
{
- "id" : "Feng Chang",
- "name" : "Feng Chang",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "id" : "Feng Chang",
+ "name" : "Feng Chang"
},
{
"data" : [
@@ -337,10 +168,12 @@
2
]
],
- "id" : "Flavio Poletti",
- "name" : "Flavio Poletti"
+ "name" : "Flavio Poletti",
+ "id" : "Flavio Poletti"
},
{
+ "id" : "James Smith",
+ "name" : "James Smith",
"data" : [
[
"Perl",
@@ -350,33 +183,31 @@
"Blog",
1
]
- ],
- "id" : "James Smith",
- "name" : "James Smith"
+ ]
},
{
+ "id" : "Jan Krnavek",
+ "name" : "Jan Krnavek",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Jan Krnavek",
- "name" : "Jan Krnavek"
+ ]
},
{
- "id" : "Jorg Sommrey",
- "name" : "Jorg Sommrey",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Jorg Sommrey",
+ "name" : "Jorg Sommrey"
},
{
- "id" : "Laurent Rosenfeld",
"name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -393,8 +224,6 @@
]
},
{
- "id" : "Luca Ferrari",
- "name" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -404,27 +233,29 @@
"Blog",
6
]
- ]
+ ],
+ "id" : "Luca Ferrari",
+ "name" : "Luca Ferrari"
},
{
+ "name" : "Mark Anderson",
+ "id" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Mark Anderson",
- "name" : "Mark Anderson"
+ ]
},
{
+ "name" : "Niels van Dijke",
+ "id" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Niels van Dijke",
- "id" : "Niels van Dijke"
+ ]
},
{
"data" : [
@@ -437,8 +268,6 @@
"name" : "Pip Stuart"
},
{
- "name" : "Robbie Hatley",
- "id" : "Robbie Hatley",
"data" : [
[
"Perl",
@@ -448,7 +277,9 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Robbie Hatley",
+ "name" : "Robbie Hatley"
},
{
"data" : [
@@ -475,8 +306,6 @@
]
},
{
- "id" : "Roger Bell_West",
- "name" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -486,11 +315,13 @@
"Raku",
2
]
- ]
+ ],
+ "name" : "Roger Bell_West",
+ "id" : "Roger Bell_West"
},
{
- "id" : "Simon Green",
"name" : "Simon Green",
+ "id" : "Simon Green",
"data" : [
[
"Perl",
@@ -521,8 +352,6 @@
"id" : "Stephen G. Lynn"
},
{
- "id" : "Thomas Kohler",
- "name" : "Thomas Kohler",
"data" : [
[
"Perl",
@@ -532,7 +361,9 @@
"Blog",
2
]
- ]
+ ],
+ "id" : "Thomas Kohler",
+ "name" : "Thomas Kohler"
},
{
"data" : [
@@ -545,12 +376,10 @@
2
]
],
- "id" : "Ulrich Rieke",
- "name" : "Ulrich Rieke"
+ "name" : "Ulrich Rieke",
+ "id" : "Ulrich Rieke"
},
{
- "id" : "W. Luis Mochan",
- "name" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -560,11 +389,201 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan"
}
]
},
+ "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/>"
+ },
"chart" : {
"type" : "column"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ }
+ }
+ },
+ "series" : [
+ {
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "drilldown" : "Adam Russell",
+ "y" : 2,
+ "name" : "Adam Russell"
+ },
+ {
+ "drilldown" : "Ali Moradi",
+ "name" : "Ali Moradi",
+ "y" : 4
+ },
+ {
+ "y" : 3,
+ "name" : "Arne Sommer",
+ "drilldown" : "Arne Sommer"
+ },
+ {
+ "drilldown" : "Athanasius",
+ "y" : 4,
+ "name" : "Athanasius"
+ },
+ {
+ "drilldown" : "Bob Lied",
+ "y" : 2,
+ "name" : "Bob Lied"
+ },
+ {
+ "name" : "Bruce Gray",
+ "y" : 2,
+ "drilldown" : "Bruce Gray"
+ },
+ {
+ "name" : "Carlos Oliveira",
+ "y" : 2,
+ "drilldown" : "Carlos Oliveira"
+ },
+ {
+ "drilldown" : "Cheok-Yin Fung",
+ "y" : 2,
+ "name" : "Cheok-Yin Fung"
+ },
+ {
+ "y" : 3,
+ "name" : "Colin Crain",
+ "drilldown" : "Colin Crain"
+ },
+ {
+ "drilldown" : "Dave Jacoby",
+ "name" : "Dave Jacoby",
+ "y" : 2
+ },
+ {
+ "drilldown" : "David Ferrone",
+ "y" : 2,
+ "name" : "David Ferrone"
+ },
+ {
+ "drilldown" : "E. Choroba",
+ "name" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "y" : 2,
+ "name" : "Feng Chang",
+ "drilldown" : "Feng Chang"
+ },
+ {
+ "drilldown" : "Flavio Poletti",
+ "name" : "Flavio Poletti",
+ "y" : 6
+ },
+ {
+ "drilldown" : "James Smith",
+ "name" : "James Smith",
+ "y" : 3
+ },
+ {
+ "y" : 2,
+ "name" : "Jan Krnavek",
+ "drilldown" : "Jan Krnavek"
+ },
+ {
+ "y" : 2,
+ "name" : "Jorg Sommrey",
+ "drilldown" : "Jorg Sommrey"
+ },
+ {
+ "drilldown" : "Laurent Rosenfeld",
+ "y" : 5,
+ "name" : "Laurent Rosenfeld"
+ },
+ {
+ "drilldown" : "Luca Ferrari",
+ "y" : 8,
+ "name" : "Luca Ferrari"
+ },
+ {
+ "name" : "Mark Anderson",
+ "y" : 2,
+ "drilldown" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Pip Stuart",
+ "y" : 2,
+ "name" : "Pip Stuart"
+ },
+ {
+ "drilldown" : "Robbie Hatley",
+ "name" : "Robbie Hatley",
+ "y" : 3
+ },
+ {
+ "name" : "Robert DiCicco",
+ "y" : 2,
+ "drilldown" : "Robert DiCicco"
+ },
+ {
+ "y" : 2,
+ "name" : "Robert Ransbottom",
+ "drilldown" : "Robert Ransbottom"
+ },
+ {
+ "y" : 4,
+ "name" : "Roger Bell_West",
+ "drilldown" : "Roger Bell_West"
+ },
+ {
+ "drilldown" : "Simon Green",
+ "name" : "Simon Green",
+ "y" : 3
+ },
+ {
+ "drilldown" : "Stephen G. Lynn",
+ "y" : 5,
+ "name" : "Stephen G. Lynn"
+ },
+ {
+ "name" : "Thomas Kohler",
+ "y" : 4,
+ "drilldown" : "Thomas Kohler"
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "drilldown" : "W. Luis Mochan",
+ "y" : 3,
+ "name" : "W. Luis Mochan"
+ }
+ ],
+ "name" : "The Weekly Challenge - 197"
+ }
+ ],
+ "legend" : {
+ "enabled" : 0
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "xAxis" : {
+ "type" : "category"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index bf3b56d894..fc504d7ed4 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,9 +1,12 @@
{
- "subtitle" : {
- "text" : "La