From 19412ea326814b3b74a0220230881e76df7ca63d Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Mon, 15 May 2023 01:53:43 +0100 Subject: - Added solutions by Flavio Poletti. --- challenge-216/polettix/blog.txt | 1 + challenge-216/polettix/blog1.txt | 1 + challenge-216/polettix/perl/ch-1.pl | 11 + challenge-216/polettix/perl/ch-2.pl | 74 ++ challenge-216/polettix/raku/ch-1.raku | 6 + challenge-216/polettix/raku/ch-2.raku | 72 ++ stats/pwc-current.json | 449 +++++---- stats/pwc-language-breakdown-summary.json | 62 +- stats/pwc-language-breakdown.json | 1494 ++++++++++++++--------------- stats/pwc-leaders.json | 370 +++---- stats/pwc-summary-1-30.json | 38 +- stats/pwc-summary-121-150.json | 38 +- stats/pwc-summary-151-180.json | 54 +- stats/pwc-summary-181-210.json | 48 +- stats/pwc-summary-211-240.json | 36 +- stats/pwc-summary-241-270.json | 102 +- stats/pwc-summary-271-300.json | 32 +- stats/pwc-summary-31-60.json | 56 +- stats/pwc-summary-61-90.json | 40 +- stats/pwc-summary-91-120.json | 116 +-- stats/pwc-summary.json | 636 ++++++------ 21 files changed, 1962 insertions(+), 1774 deletions(-) create mode 100644 challenge-216/polettix/blog.txt create mode 100644 challenge-216/polettix/blog1.txt create mode 100644 challenge-216/polettix/perl/ch-1.pl create mode 100644 challenge-216/polettix/perl/ch-2.pl create mode 100644 challenge-216/polettix/raku/ch-1.raku create mode 100644 challenge-216/polettix/raku/ch-2.raku diff --git a/challenge-216/polettix/blog.txt b/challenge-216/polettix/blog.txt new file mode 100644 index 0000000000..1f0597b4aa --- /dev/null +++ b/challenge-216/polettix/blog.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2023/05/11/pwc216-registration-number/ diff --git a/challenge-216/polettix/blog1.txt b/challenge-216/polettix/blog1.txt new file mode 100644 index 0000000000..3d033af490 --- /dev/null +++ b/challenge-216/polettix/blog1.txt @@ -0,0 +1 @@ +https://github.polettix.it/ETOOBUSY/2023/05/12/pwc216-word-stickers/ diff --git a/challenge-216/polettix/perl/ch-1.pl b/challenge-216/polettix/perl/ch-1.pl new file mode 100644 index 0000000000..08be43622c --- /dev/null +++ b/challenge-216/polettix/perl/ch-1.pl @@ -0,0 +1,11 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; + +my %code = map { $_ => 1 } split m{}mxs, lc(shift) =~ s{[^a-z]}{}rgmxs; +my @words = grep { + my %word = map { $_ => 1 } grep { $code{$_} } split m{}mxs, lc($_); + scalar(keys(%code)) == scalar(keys(%word)); +} @ARGV; +{ local $" = "', '"; say "('@words')" if @words } diff --git a/challenge-216/polettix/perl/ch-2.pl b/challenge-216/polettix/perl/ch-2.pl new file mode 100644 index 0000000000..eb5445debf --- /dev/null +++ b/challenge-216/polettix/perl/ch-2.pl @@ -0,0 +1,74 @@ +#!/usr/bin/env perl +use v5.24; +use warnings; +use experimental 'signatures'; +use List::Util 'sum'; + +say word_stickers(qw< ppeoknpp perlp raku python >); + +sub word_stickers ($word, @stickers) { + my %needed = letters_histogram($word); + + # collect whatever is deemed sufficient + my %provided; + for my $sticker (@stickers) { + my %available = letters_histogram($sticker); + for my $letter (keys(%needed)) { + my $available = $available{$letter} or next; + $provided{$letter}{$sticker} = $available; + } + } + + # check for a viable solution and set the bare minimum + my %minimum; + for my $letter (keys(%needed)) { + my $alternatives = $provided{$letter} + or return 0; # no viable source + if (scalar(keys($alternatives->%*)) == 1) { # one viable source only + my ($word, $amount) = $alternatives->%*; + $minimum{$word} = $amount + if (! exists($minimum{$word})) || ($minimum{$word} < $amount); + } + } + + # use whatever minimum we set to lower needs, where possible + for my $letter (keys(%needed)) { + my $needed = delete $needed{$letter}; + for my $source (keys($provided{$letter}->%*)) { + $needed -= ($minimum{$source} // 0) * $provided{$letter}{$source}; + } + $needed{$letter} = $needed if $needed > 0; # restore missing + } + + # if we're left with needs, we have to do some searching, breadth first + %minimum = complete_minimum(\%minimum, \%needed, \%provided) + if scalar(keys(%needed)); + + return sum(values(%minimum)); +} + +sub complete_minimum ($minimum, $needed, $provided) { + my @queue = ({needed => {$needed->%*}, minimum => {$minimum->%*}}); + while (@queue) { + my $frame = shift(@queue); + my $needed = $frame->{needed}; + my $minimum = $frame->{minimum}; + for my $letter (keys($needed->%*)) { + for my $source (keys($provided->{$letter}->%*)) { + my %nmin = $minimum->%*; + $nmin{$source}++; + my %nneed = $needed->%*; + $nneed{$letter} -= $provided->{$letter}{$source}; + delete($nneed{$letter}) if $nneed{$letter} <= 0; + return %nmin if scalar(keys(%nneed)) == 0; + push @queue, {needed => \%nneed, minimum => \%nmin}; + } + } + } +} + +sub letters_histogram ($word) { + my %amount_for; + $amount_for{substr($word, $_, 1)}++ for 0 .. length($word) - 1; + return %amount_for; +} diff --git a/challenge-216/polettix/raku/ch-1.raku b/challenge-216/polettix/raku/ch-1.raku new file mode 100644 index 0000000000..86ac2ffe6a --- /dev/null +++ b/challenge-216/polettix/raku/ch-1.raku @@ -0,0 +1,6 @@ +#!/usr/bin/env raku +use v6; +sub MAIN (Str :$code, *@words) { + my @code = $code.lc.subst(/ <-[ a..z ]>/, '', :g).comb.Set; + @words.grep({ @code ⊆ .lc.comb }).join(', ').put; +} diff --git a/challenge-216/polettix/raku/ch-2.raku b/challenge-216/polettix/raku/ch-2.raku new file mode 100644 index 0000000000..71005bf561 --- /dev/null +++ b/challenge-216/polettix/raku/ch-2.raku @@ -0,0 +1,72 @@ +#!/usr/bin/env raku +use v6; +sub MAIN (Str :$word, *@stickers) { put word-stickers($word, @stickers) } + +sub word-stickers ($word, @stickers) { + my %needed = letters-histogram($word); + + # collect whatever is deemed sufficient + my %provided; + for @stickers -> $sticker { + my %available = letters-histogram($sticker); + for %needed.keys -> $letter { + my $available = %available{$letter} or next; + %provided{$letter}{$sticker} = $available; + } + } + + # check for a viable solution and set the bare minimum + my %minimum; + for %needed.keys -> $letter { + my $alternatives = %provided{$letter} + or return 0; # no viable source + if ($alternatives.elems == 1) { # one viable source only + my ($word, $amount) = $alternatives.kv; + %minimum{$word} = $amount + if %minimum{$word}:!exists || (%minimum{$word} < $amount); + } + } + + # use whatever minimum we set to lower needs, where possible + for %needed.keys -> $letter { + my $needed = %needed{$letter}:delete; + for %provided{$letter}.keys -> $source { + $needed -= (%minimum{$source} // 0) * %provided{$letter}{$source}; + } + %needed{$letter} = $needed if $needed > 0; # restore missing + } + + + # if we're left with needs, we have to do some searching, breadth first + %minimum = complete-minimum(%minimum, %needed, %provided) + if %needed.keys.elems > 0; + + return sum(values(%minimum)); +} + +sub letters-histogram ($word) { + my %amount_for; + %amount_for{$word.substr($_, 1)}++ for 0 ..^ $word.chars; + return %amount_for; +} + +sub complete-minimum (%minimum is copy, %needed is copy, %provided) { + my @queue = {needed => %needed, minimum => %minimum},; + while @queue { + my $frame = @queue.shift; + my $needed = $frame; + my $minimum = $frame; + for $needed.keys -> $letter { + for %provided{$letter}.keys -> $source { + my %nmin = %$minimum; + %nmin{$source}++; + my %nneed = %$needed; + %nneed{$letter} -= %provided{$letter}{$source}; + %nneed{$letter}:delete if %nneed{$letter} <= 0; + return %nmin if %nneed.keys.elems == 0; + @queue.push: {needed => %nneed, minimum => %nmin}; + } + } + } + return (); +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 8d354d7e21..26025d18ea 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,190 +1,30 @@ { - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "The Weekly Challenge - 216" - }, - "series" : [ - { - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 216", - "data" : [ - { - "drilldown" : "Arne Sommer", - "y" : 3, - "name" : "Arne Sommer" - }, - { - "name" : "Avery Adams", - "y" : 3, - "drilldown" : "Avery Adams" - }, - { - "y" : 1, - "name" : "BarrOff", - "drilldown" : "BarrOff" - }, - { - "name" : "Bruce Gray", - "y" : 2, - "drilldown" : "Bruce Gray" - }, - { - "drilldown" : "David Ferrone", - "y" : 2, - "name" : "David Ferrone" - }, - { - "name" : "Duncan C. White", - "y" : 2, - "drilldown" : "Duncan C. White" - }, - { - "name" : "E. Choroba", - "y" : 2, - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Feng Chang", - "name" : "Feng Chang", - "y" : 2 - }, - { - "name" : "James Smith", - "y" : 3, - "drilldown" : "James Smith" - }, - { - "drilldown" : "Jan Krnavek", - "y" : 1, - "name" : "Jan Krnavek" - }, - { - "drilldown" : "Jorg Sommrey", - "y" : 1, - "name" : "Jorg Sommrey" - }, - { - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld", - "y" : 3 - }, - { - "name" : "Leo Manfredi", - "y" : 1, - "drilldown" : "Leo Manfredi" - }, - { - "name" : "Lubos Kolouch", - "y" : 2, - "drilldown" : "Lubos Kolouch" - }, - { - "name" : "Luca Ferrari", - "y" : 8, - "drilldown" : "Luca Ferrari" - }, - { - "name" : "Mark Anderson", - "y" : 2, - "drilldown" : "Mark Anderson" - }, - { - "name" : "Matthias Muth", - "y" : 2, - "drilldown" : "Matthias Muth" - }, - { - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke", - "y" : 1 - }, - { - "drilldown" : "Peter Campbell Smith", - "y" : 3, - "name" : "Peter Campbell Smith" - }, - { - "drilldown" : "RibTips", - "y" : 2, - "name" : "RibTips" - }, - { - "drilldown" : "Robbie Hatley", - "y" : 3, - "name" : "Robbie Hatley" - }, - { - "drilldown" : "Robert DiCicco", - "name" : "Robert DiCicco", - "y" : 2 - }, - { - "name" : "Roger Bell_West", - "y" : 5, - "drilldown" : "Roger Bell_West" - }, - { - "y" : 2, - "name" : "Shimon Bollinger", - "drilldown" : "Shimon Bollinger" - }, - { - "drilldown" : "Simon Green", - "name" : "Simon Green", - "y" : 3 - }, - { - "drilldown" : "Solathian", - "name" : "Solathian", - "y" : 1 - }, - { - "y" : 4, - "name" : "Thomas Kohler", - "drilldown" : "Thomas Kohler" - }, - { - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 3 - }, - { - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan", - "y" : 3 - } - ] - } - ], "yAxis" : { "title" : { "text" : "Total Solutions" } }, + "legend" : { + "enabled" : 0 + }, + "title" : { + "text" : "The Weekly Challenge - 216" + }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 + "format" : "{point.y}", + "enabled" : 1 + } } }, "subtitle" : { - "text" : "[Champions: 29] Last updated at 2023-05-15 00:37:07 GMT" - }, - "xAxis" : { - "type" : "category" - }, - "legend" : { - "enabled" : 0 + "text" : "[Champions: 30] Last updated at 2023-05-15 00:51:01 GMT" }, "drilldown" : { "series" : [ { - "name" : "Arne Sommer", "id" : "Arne Sommer", "data" : [ [ @@ -195,10 +35,10 @@ "Blog", 1 ] - ] + ], + "name" : "Arne Sommer" }, { - "name" : "Avery Adams", "id" : "Avery Adams", "data" : [ [ @@ -209,31 +49,32 @@ "Blog", 2 ] - ] + ], + "name" : "Avery Adams" }, { + "id" : "BarrOff", "data" : [ [ "Raku", 1 ] ], - "id" : "BarrOff", "name" : "BarrOff" }, { - "name" : "Bruce Gray", - "id" : "Bruce Gray", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Bruce Gray", + "id" : "Bruce Gray" }, { - "name" : "David Ferrone", "id" : "David Ferrone", + "name" : "David Ferrone", "data" : [ [ "Perl", @@ -242,38 +83,56 @@ ] }, { + "id" : "Duncan C. White", "data" : [ [ "Perl", 2 ] ], - "id" : "Duncan C. White", "name" : "Duncan C. White" }, { - "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], - "name" : "E. Choroba" + "id" : "E. Choroba" }, { "id" : "Feng Chang", + "name" : "Feng Chang", + "data" : [ + [ + "Raku", + 2 + ] + ] + }, + { "data" : [ + [ + "Perl", + 2 + ], [ "Raku", 2 + ], + [ + "Blog", + 2 ] ], - "name" : "Feng Chang" + "name" : "Flavio Poletti", + "id" : "Flavio Poletti" }, { - "name" : "James Smith", "id" : "James Smith", + "name" : "James Smith", "data" : [ [ "Perl", @@ -287,13 +146,13 @@ }, { "id" : "Jan Krnavek", + "name" : "Jan Krnavek", "data" : [ [ "Raku", 1 ] - ], - "name" : "Jan Krnavek" + ] }, { "name" : "Jorg Sommrey", @@ -320,18 +179,18 @@ 1 ] ], - "id" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" + "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld" }, { - "name" : "Leo Manfredi", - "id" : "Leo Manfredi", "data" : [ [ "Perl", 1 ] - ] + ], + "name" : "Leo Manfredi", + "id" : "Leo Manfredi" }, { "name" : "Lubos Kolouch", @@ -358,36 +217,37 @@ "id" : "Luca Ferrari" }, { + "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + "id" : "Mark Anderson" }, { - "id" : "Matthias Muth", "data" : [ [ "Perl", 2 ] ], - "name" : "Matthias Muth" + "name" : "Matthias Muth", + "id" : "Matthias Muth" }, { + "id" : "Niels van Dijke", + "name" : "Niels van Dijke", "data" : [ [ "Perl", 1 ] - ], - "id" : "Niels van Dijke", - "name" : "Niels van Dijke" + ] }, { + "id" : "Peter Campbell Smith", "name" : "Peter Campbell Smith", "data" : [ [ @@ -398,8 +258,7 @@ "Blog", 1 ] - ], - "id" : "Peter Campbell Smith" + ] }, { "id" : "RibTips", @@ -413,7 +272,6 @@ }, { "name" : "Robbie Hatley", - "id" : "Robbie Hatley", "data" : [ [ "Perl", @@ -423,7 +281,8 @@ "Blog", 1 ] - ] + ], + "id" : "Robbie Hatley" }, { "id" : "Robert DiCicco", @@ -440,6 +299,7 @@ "name" : "Robert DiCicco" }, { + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -454,10 +314,10 @@ 1 ] ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" + "id" : "Roger Bell_West" }, { + "name" : "Shimon Bollinger", "data" : [ [ "Raku", @@ -468,10 +328,10 @@ 1 ] ], - "id" : "Shimon Bollinger", - "name" : "Shimon Bollinger" + "id" : "Shimon Bollinger" }, { + "id" : "Simon Green", "data" : [ [ "Perl", @@ -482,18 +342,17 @@ 1 ] ], - "id" : "Simon Green", "name" : "Simon Green" }, { - "id" : "Solathian", + "name" : "Solathian", "data" : [ [ "Perl", 1 ] ], - "name" : "Solathian" + "id" : "Solathian" }, { "name" : "Thomas Kohler", @@ -510,7 +369,7 @@ "id" : "Thomas Kohler" }, { - "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -521,7 +380,7 @@ 1 ] ], - "name" : "Ulrich Rieke" + "id" : "Ulrich Rieke" }, { "data" : [ @@ -534,14 +393,178 @@ 1 ] ], - "id" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan" } ] }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Arne Sommer", + "y" : 3, + "name" : "Arne Sommer" + }, + { + "drilldown" : "Avery Adams", + "y" : 3, + "name" : "Avery Adams" + }, + { + "y" : 1, + "drilldown" : "BarrOff", + "name" : "BarrOff" + }, + { + "drilldown" : "Bruce Gray", + "y" : 2, + "name" : "Bruce Gray" + }, + { + "drilldown" : "David Ferrone", + "y" : 2, + "name" : "David Ferrone" + }, + { + "name" : "Duncan C. White", + "drilldown" : "Duncan C. White", + "y" : 2 + }, + { + "drilldown" : "E. Choroba", + "y" : 2, + "name" : "E. Choroba" + }, + { + "drilldown" : "Feng Chang", + "y" : 2, + "name" : "Feng Chang" + }, + { + "y" : 6, + "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti" + }, + { + "name" : "James Smith", + "y" : 3, + "drilldown" : "James Smith" + }, + { + "name" : "Jan Krnavek", + "drilldown" : "Jan Krnavek", + "y" : 1 + }, + { + "drilldown" : "Jorg Sommrey", + "y" : 1, + "name" : "Jorg Sommrey" + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 3 + }, + { + "drilldown" : "Leo Manfredi", + "y" : 1, + "name" : "Leo Manfredi" + }, + { + "drilldown" : "Lubos Kolouch", + "y" : 2, + "name" : "Lubos Kolouch" + }, + { + "y" : 8, + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari" + }, + { + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson", + "y" : 2 + }, + { + "drilldown" : "Matthias Muth", + "y" : 2, + "name" : "Matthias Muth" + }, + { + "y" : 1, + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "name" : "Peter Campbell Smith", + "y" : 3, + "drilldown" : "Peter Campbell Smith" + }, + { + "name" : "RibTips", + "y" : 2, + "drilldown" : "RibTips" + }, + { + "name" : "Robbie Hatley", + "drilldown" : "Robbie Hatley", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Robert DiCicco", + "name" : "Robert DiCicco" + }, + { + "drilldown" : "Roger Bell_West", + "y" : 5, + "name" : "Roger Bell_West" + }, + { + "y" : 2, + "drilldown" : "Shimon Bollinger", + "name" : "Shimon Bollinger" + }, + { + "name" : "Simon Green", + "y" : 3, + "drilldown" : "Simon Green" + }, + { + "name" : "Solathian", + "drilldown" : "Solathian", + "y" : 1 + }, + { + "name" : "Thomas Kohler", + "y" : 4, + "drilldown" : "Thomas Kohler" + }, + { + "name" : "Ulrich Rieke", + "y" : 3, + "drilldown" : "Ulrich Rieke" + }, + { + "y" : 3, + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + } + ], + "name" : "The Weekly Challenge - 216" + } + ], + "xAxis" : { + "type" : "category" + }, "tooltip" : { "headerFormat" : "{series.name}
", "pointFormat" : "{point.name}: {point.y:f}
", "followPointer" : 1 + }, + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 7e2d54a086..360ccec772 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -2,62 +2,62 @@ "legend" : { "enabled" : "false" }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, - "subtitle" : { - "text" : "Last updated at 2023-05-15 00:37:07 GMT" + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2023]" }, - "xAxis" : { - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } + "yAxis" : { + "title" : { + "text" : null }, - "type" : "category" + "min" : 0 }, "series" : [ { - "name" : "Contributions", "dataLabels" : { + "rotation" : -90, "format" : "{point.y:.0f}", - "align" : "right", - "enabled" : "true", "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, - "y" : 10, + "align" : "right", "color" : "#FFFFFF", - "rotation" : -90 + "y" : 10, + "enabled" : "true" }, "data" : [ [ "Blog", - 3570 + 3572 ], [ "Perl", - 11016 + 11018 ], [ "Raku", - 6385 + 6387 ] - ] + ], + "name" : "Contributions" } ], - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, "chart" : { "type" : "column" }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2023]" + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + } + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, + "subtitle" : { + "text" : "Last updated at 2023-05-15 00:51:00 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 0c8c906787..93cb40ed2d 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,6 +1,8 @@ { - "xAxis" : { - "type" : "category" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "plotOptions" : { "series" : { @@ -11,20 +13,16 @@ } } }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2023-05-15 00:37:07 GMT" - }, - "tooltip" : { - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "headerFormat" : "", - "followPointer" : "true" - }, "legend" : { "enabled" : "false" }, + "title" : { + "text" : "The Weekly Challenge Language" + }, "drilldown" : { "series" : [ { + "id" : "001", "data" : [ [ "Perl", @@ -39,10 +37,10 @@ 11 ] ], - "id" : "001", "name" : "001" }, { + "id" : "002", "data" : [ [ "Perl", @@ -57,11 +55,10 @@ 10 ] ], - "id" : "002", "name" : "002" }, { - "name" : "003", + "id" : "003", "data" : [ [ "Perl", @@ -76,7 +73,7 @@ 9 ] ], - "id" : "003" + "name" : "003" }, { "name" : "004", @@ -97,6 +94,8 @@ "id" : "004" }, { + "id" : "005", + "name" : "005", "data" : [ [ "Perl", @@ -110,9 +109,7 @@ "Blog", 12 ] - ], - "id" : "005", - "name" : "005" + ] }, { "data" : [ @@ -129,11 +126,10 @@ 7 ] ], - "id" : "006", - "name" : "006" + "name" : "006", + "id" : "006" }, { - "name" : "007", "data" : [ [ "Perl", @@ -148,10 +144,12 @@ 10 ] ], + "name" : "007", "id" : "007" }, { "id" : "008", + "name" : "008", "data" : [ [ "Perl", @@ -165,12 +163,9 @@ "Blog", 12 ] - ], - "name" : "008" + ] }, { - "name" : "009", - "id" : "009", "data" : [ [ "Perl", @@ -184,9 +179,12 @@ "Blog", 13 ] - ] + ], + "name" : "009", + "id" : "009" }, { + "name" : "010", "data" : [ [ "Perl", @@ -201,12 +199,11 @@ 11 ] ], - "id" : "010", - "name" : "010" + "id" : "010" }, { - "name" : "011", "id" : "011", + "name" : "011", "data" : [ [ "Perl", @@ -223,6 +220,7 @@ ] }, { + "id" : "012", "name" : "012", "data" : [ [ @@ -237,11 +235,10 @@ "Blog", 11 ] - ], - "id" : "012" + ] }, { - "id" : "013", + "name" : "013", "data" : [ [ "Perl", @@ -256,7 +253,7 @@ 13 ] ], - "name" : "013" + "id" : "013" }, { "name" : "014", @@ -277,7 +274,6 @@ "id" : "014" }, { - "name" : "015", "id" : "015", "data" : [ [ @@ -292,7 +288,8 @@ "Blog", 15 ] - ] + ], + "name" : "015" }, { "data" : [ @@ -309,11 +306,10 @@ 13 ] ], - "id" : "016", - "name" : "016" + "name" : "016", + "id" : "016" }, { - "name" : "017", "id" : "017", "data" : [ [ @@ -328,7 +324,8 @@ "Blog", 12 ] - ] + ], + "name" : "017" }, { "id" : "018", @@ -349,8 +346,8 @@ "name" : "018" }, { - "name" : "019", "id" : "019", + "name" : "019", "data" : [ [ "Perl", @@ -368,7 +365,6 @@ }, { "name" : "020", - "id" : "020", "data" : [ [ "Perl", @@ -382,10 +378,11 @@ "Blog", 13 ] - ] + ], + "id" : "020" }, { - "name" : "021", + "id" : "021", "data" : [ [ "Perl", @@ -400,7 +397,7 @@ 10 ] ], - "id" : "021" + "name" : "021" }, { "name" : "022", @@ -421,6 +418,8 @@ "id" : "022" }, { + "id" : "023", + "name" : "023", "data" : [ [ "Perl", @@ -434,11 +433,10 @@ "Blog", 12 ] - ], - "id" : "023", - "name" : "023" + ] }, { + "id" : "024", "data" : [ [ "Perl", @@ -453,10 +451,10 @@ 11 ] ], - "id" : "024", "name" : "024" }, { + "name" : "025", "data" : [ [ "Perl", @@ -471,12 +469,9 @@ 12 ] ], - "id" : "025", - "name" : "025" + "id" : "025" }, { - "name" : "026", - "id" : "026", "data" : [ [ "Perl", @@ -490,10 +485,11 @@ "Blog", 10 ] - ] + ], + "name" : "026", + "id" : "026" }, { - "name" : "027", "id" : "027", "data" : [ [ @@ -508,10 +504,11 @@ "Blog", 9 ] - ] + ], + "name" : "027" }, { - "name" : "028", + "id" : "028", "data" : [ [ "Perl", @@ -526,7 +523,7 @@ 9 ] ], - "id" : "028" + "name" : "028" }, { "data" : [ @@ -543,10 +540,12 @@ 12 ] ], - "id" : "029", - "name" : "029" + "name" : "029", + "id" : "029" }, { + "id" : "030", + "name" : "030", "data" : [ [ "Perl", @@ -560,13 +559,9 @@ "Blog", 10 ] - ], - "id" : "030", - "name" : "030" + ] }, { - "name" : "031", - "id" : "031", "data" : [ [ "Perl", @@ -580,10 +575,12 @@ "Blog", 9 ] - ] + ], + "name" : "031", + "id" : "031" }, { - "id" : "032", + "name" : "032", "data" : [ [ "Perl", @@ -598,10 +595,9 @@ 10 ] ], - "name" : "032" + "id" : "032" }, { - "name" : "033", "id" : "033", "data" : [ [ @@ -616,9 +612,11 @@ "Blog", 10 ] - ] + ], + "name" : "033" }, { + "id" : "034", "name" : "034", "data" : [ [ @@ -633,11 +631,11 @@ "Blog", 11 ] - ], - "id" : "034" + ] }, { "id" : "035", + "name" : "035", "data" : [ [ "Perl", @@ -651,11 +649,9 @@ "Blog", 9 ] - ], - "name" : "035" + ] }, { - "name" : "036", "data" : [ [ "Perl", @@ -670,11 +666,12 @@ 11 ] ], + "name" : "036", "id" : "036" }, { - "name" : "037", "id" : "037", + "name" : "037", "data" : [ [ "Perl", @@ -691,7 +688,7 @@ ] }, { - "name" : "038", + "id" : "038", "data" : [ [ "Perl", @@ -706,9 +703,10 @@ 12 ] ], - "id" : "038" + "name" : "038" }, { + "id" : "039", "name" : "039", "data" : [ [ @@ -723,8 +721,7 @@ "Blog", 12 ] - ], - "id" : "039" + ] }, { "id" : "040", @@ -746,6 +743,7 @@ }, { "id" : "041", + "name" : "041", "data" : [ [ "Perl", @@ -759,10 +757,10 @@ "Blog", 9 ] - ], - "name" : "041" + ] }, { + "id" : "042", "name" : "042", "data" : [ [ @@ -777,12 +775,10 @@ "Blog", 11 ] - ], - "id" : "042" + ] }, { "name" : "043", - "id" : "043", "data" : [ [ "Perl", @@ -796,9 +792,11 @@ "Blog", 11 ] - ] + ], + "id" : "043" }, { + "name" : "044", "data" : [ [ "Perl", @@ -813,10 +811,10 @@ 11 ] ], - "id" : "044", - "name" : "044" + "id" : "044" }, { + "name" : "045", "data" : [ [ "Perl", @@ -831,8 +829,7 @@ 11 ] ], - "id" : "045", - "name" : "045" + "id" : "045" }, { "data" : [ @@ -849,12 +846,12 @@ 10 ] ], - "id" : "046", - "name" : "046" + "name" : "046", + "id" : "046" }, { - "name" : "047", "id" : "047", + "name" : "047", "data" : [ [ "Perl", @@ -871,7 +868,6 @@ ] }, { - "name" : "048", "data" : [ [ "Perl", @@ -886,11 +882,10 @@ 12 ] ], + "name" : "048", "id" : "048" }, { - "name" : "049", - "id" : "049", "data" : [ [ "Perl", @@ -904,11 +899,13 @@ "Blog", 12 ] - ] + ], + "name" : "049", + "id" : "049" }, { - "name" : "050", "id" : "050", + "name" : "050", "data" : [ [ "Perl", @@ -925,7 +922,6 @@ ] }, { - "name" : "051", "data" : [ [ "Perl", @@ -940,10 +936,12 @@ 11 ] ], + "name" : "051", "id" : "051" }, { "id" : "052", + "name" : "052", "data" : [ [ "Perl", @@ -957,8 +955,7 @@ "Blog", 14 ] - ], - "name" : "052" + ] }, { "data" : [ @@ -975,8 +972,8 @@ 15 ] ], - "id" : "053", - "name" : "053" + "name" : "053", + "id" : "053" }, { "name" : "054", @@ -1016,6 +1013,7 @@ }, { "id" : "056", + "name" : "056", "data" : [ [ "Perl", @@ -1029,11 +1027,10 @@ "Blog", 17 ] - ], - "name" : "056" + ] }, { - "id" : "057", + "name" : "057", "data" : [ [ "Perl", @@ -1048,7 +1045,7 @@ 15 ] ], - "name" : "057" + "id" : "057" }, { "data" : [ @@ -1065,10 +1062,11 @@ 13 ] ], - "id" : "058", - "name" : "058" + "name" : "058", + "id" : "058" }, { + "id" : "059", "data" : [ [ "Perl", @@ -1083,10 +1081,10 @@ 16 ] ], - "id" : "059", "name" : "059" }, { + "name" : "060", "data" : [ [ "Perl", @@ -1101,10 +1099,11 @@ 16 ] ], - "id" : "060", - "name" : "060" + "id" : "060" }, { + "id" : "061", + "name" : "061", "data" : [ [ "Perl", @@ -1118,11 +1117,10 @@ "Blog", 14 ] - ], - "id" : "061", - "name" : "061" + ] }, { + "name" : "062", "data" : [ [ "Perl", @@ -1137,11 +1135,10 @@ 11 ] ], - "id" : "062", - "name" : "062" + "id" : "062" }, { - "name" : "063", + "id" : "063", "data" : [ [ "Perl", @@ -1156,11 +1153,9 @@ 13 ] ], - "id" : "063" + "name" : "063" }, { - "name" : "064", - "id" : "064", "data" : [ [ "Perl", @@ -1174,10 +1169,12 @@ "Blog", 16 ] - ] + ], + "name" : "064", + "id" : "064" }, { - "id" : "065", + "name" : "065", "data" : [ [ "Perl", @@ -1192,11 +1189,11 @@ 15 ] ], - "name" : "065" + "id" : "065" }, { - "name" : "066", "id" : "066", + "name" : "066", "data" : [ [ "Perl", @@ -1213,7 +1210,6 @@ ] }, { - "name" : "067", "id" : "067", "data" : [ [ @@ -1228,7 +1224,8 @@ "Blog", 18 ] - ] + ], + "name" : "067" }, { "data" : [ @@ -1245,10 +1242,11 @@ 13 ] ], - "id" : "068", - "name" : "068" + "name" : "068", + "id" : "068" }, { + "id" : "069", "data" : [ [ "Perl", @@ -1263,10 +1261,10 @@ 16 ] ], - "id" : "069", "name" : "069" }, { + "id" : "070", "data" : [ [ "Perl", @@ -1281,11 +1279,11 @@ 17 ] ], - "id" : "070", "name" : "070" }, { "id" : "071", + "name" : "071", "data" : [ [ "Perl", @@ -1299,10 +1297,10 @@ "Blog", 15 ] - ], - "name" : "071" + ] }, { + "id" : "072", "name" : "072", "data" : [ [ @@ -1317,12 +1315,9 @@ "Blog", 19 ] - ], - "id" : "072" + ] }, { - "name" : "073", - "id" : "073", "data" : [ [ "Perl", @@ -1336,9 +1331,13 @@ "Blog", 17 ] - ] + ], + "name" : "073", + "id" : "073" }, { + "id" : "074", + "name" : "074", "data" : [ [ "Perl", @@ -1352,9 +1351,7 @@ "Blog", 20 ] - ], - "id" : "074", - "name" : "074" + ] }, { "data" : [ @@ -1371,10 +1368,12 @@ 20 ] ], - "id" : "075", - "name" : "075" + "name" : "075", + "id" : "075" }, { + "id" : "076", + "name" : "076", "data" : [ [ "Perl", @@ -1388,13 +1387,10 @@ "Blog", 16 ] - ], - "id" : "076", - "name" : "076" + ] }, { "name" : "077", - "id" : "077", "data" : [ [ "Perl", @@ -1408,11 +1404,10 @@ "Blog", 14 ] - ] + ], + "id" : "077" }, { - "name" : "078", - "id" : "078", "data" : [ [ "Perl", @@ -1426,7 +1421,9 @@ "Blog", 18 ] - ] + ], + "name" : "078", + "id" : "078" }, { "data" : [ @@ -1443,10 +1440,11 @@ 17 ] ], - "id" : "079", - "name" : "079" + "name" : "079", + "id" : "079" }, { + "id" : "080", "name" : "080", "data" : [ [ @@ -1461,10 +1459,11 @@ "Blog", 16 ] - ], - "id" : "080" + ] }, { + "id" : "081", + "name" : "081", "data" : [ [ "Perl", @@ -1478,9 +1477,7 @@ "Blog", 15 ] - ], - "id" : "081", - "name" : "081" + ] }, { "data" : [ @@ -1497,11 +1494,10 @@ 17 ] ], - "id" : "082", - "name" : "082" + "name" : "082", + "id" : "082" }, { - "name" : "083", "data" : [ [ "Perl", @@ -1516,10 +1512,12 @@ 16 ] ], + "name" : "083", "id" : "083" }, { "id" : "084", + "name" : "084", "data" : [ [ "Perl", @@ -1533,11 +1531,10 @@ "Blog", 12 ] - ], - "name" : "084" + ] }, { - "id" : "085", + "name" : "085", "data" : [ [ "Perl", @@ -1552,11 +1549,10 @@ 18 ] ], - "name" : "085" + "id" : "085" }, { "name" : "086", - "id" : "086", "data" : [ [ "Perl", @@ -1570,11 +1566,12 @@ "Blog", 15 ] - ] + ], + "id" : "086" }, { - "name" : "087", "id" : "087", + "name" : "087", "data" : [ [ "Perl", @@ -1609,6 +1606,7 @@ "id" : "088" }, { + "name" : "089", "data" : [ [ "Perl", @@ -1623,11 +1621,9 @@ 20 ] ], - "id" : "089", - "name" : "089" + "id" : "089" }, { - "id" : "090", "data" : [ [ "Perl", @@ -1642,9 +1638,11 @@ 17 ] ], - "name" : "090" + "name" : "090", + "id" : "090" }, { + "id" : "091", "data" : [ [ "Perl", @@ -1659,11 +1657,10 @@ 16 ] ], - "id" : "091", "name" : "091" }, { - "id" : "092", + "name" : "092", "data" : [ [ "Perl", @@ -1678,7 +1675,7 @@ 16 ] ], - "name" : "092" + "id" : "092" }, { "data" : [ @@ -1695,8 +1692,8 @@ 16 ] ], - "id" : "093", - "name" : "093" + "name" : "093", + "id" : "093" }, { "data" : [ @@ -1713,11 +1710,10 @@ 17 ] ], - "id" : "094", - "name" : "094" + "name" : "094", + "id" : "094" }, { - "id" : "095", "data" : [ [ "Perl", @@ -1732,9 +1728,11 @@ 19 ] ], - "name" : "095" + "name" : "095", + "id" : "095" }, { + "id" : "096", "name" : "096", "data" : [ [ @@ -1749,10 +1747,10 @@ "Blog", 19 ] - ], - "id" : "096" + ] }, { + "name" : "097", "data" : [ [ "Perl", @@ -1767,10 +1765,10 @@ 19 ] ], - "id" : "097", - "name" : "097" + "id" : "097" }, { + "id" : "098", "data" : [ [ "Perl", @@ -1785,7 +1783,6 @@ 17 ] ], - "id" : "098", "name" : "098" }, { @@ -1807,8 +1804,8 @@ "id" : "099" }, { - "name" : "100", "id" : "100", + "name" : "100", "data" : [ [ "Perl", @@ -1825,7 +1822,6 @@ ] }, { - "name" : "101", "id" : "101", "data" : [ [ @@ -1840,11 +1836,10 @@ "Blog", 13 ] - ] + ], + "name" : "101" }, { - "name" : "102", - "id" : "102", "data" : [ [ "Perl", @@ -1858,7 +1853,9 @@ "Blog", 15 ] - ] + ], + "name" : "102", + "id" : "102" }, { "id" : "103", @@ -1879,7 +1876,7 @@ "name" : "103" }, { - "name" : "104", + "id" : "104", "data" : [ [ "Perl", @@ -1894,10 +1891,9 @@ 14 ] ], - "id" : "104" + "name" : "104" }, { - "id" : "105", "data" : [ [ "Perl", @@ -1912,11 +1908,12 @@ 14 ] ], - "name" : "105" + "name" : "105", + "id" : "105" }, { - "name" : "106", "id" : "106", + "name" : "106", "data" : [ [ "Perl", @@ -1933,8 +1930,8 @@ ] }, { - "name" : "107", "id" : "107", + "name" : "107", "data" : [ [ "Perl", @@ -1952,7 +1949,6 @@ }, { "name" : "108", - "id" : "108", "data" : [ [ "Perl", @@ -1966,11 +1962,11 @@ "Blog", 20 ] - ] + ], + "id" : "108" }, { "name" : "109", - "id" : "109", "data" : [ [ "Perl", @@ -1984,7 +1980,8 @@ "Blog", 22 ] - ] + ], + "id" : "109" }, { "name" : "110", @@ -2019,12 +2016,10 @@ 17 ] ], - "id" : "111", - "name" : "111" + "name" : "111", + "id" : "111" }, { - "name" : "112", - "id" : "112", "data" : [ [ "Perl", @@ -2038,11 +2033,12 @@ "Blog", 19 ] - ] + ], + "name" : "112", + "id" : "112" }, { "name" : "113", - "id" : "113", "data" : [ [ "Perl", @@ -2056,10 +2052,10 @@ "Blog", 19 ] - ] + ], + "id" : "113" }, { - "name" : "114", "data" : [ [ "Perl", @@ -2074,9 +2070,11 @@ 21 ] ], + "name" : "114", "id" : "114" }, { + "id" : "115", "name" : "115", "data" : [ [ @@ -2091,10 +2089,10 @@ "Blog", 20 ] - ], - "id" : "115" + ] }, { + "id" : "116", "name" : "116", "data" : [ [ @@ -2109,11 +2107,11 @@ "Blog", 17 ] - ], - "id" : "116" + ] }, { "id" : "117", + "name" : "117", "data" : [ [ "Perl", @@ -2127,11 +2125,10 @@ "Blog", 19 ] - ], - "name" : "117" + ] }, { - "id" : "118", + "name" : "118", "data" : [ [ "Perl", @@ -2146,10 +2143,9 @@ 17 ] ], - "name" : "118" + "id" : "118" }, { - "id" : "119", "data" : [ [ "Perl", @@ -2164,11 +2160,12 @@ 21 ] ], - "name" : "119" + "name" : "119", + "id" : "119" }, { - "name" : "120", "id" : "120", + "name" : "120", "data" : [ [ "Perl", @@ -2199,10 +2196,11 @@ 17 ] ], - "id" : "121", - "name" : "121" + "name" : "121", + "id" : "121" }, { + "id" : "122", "name" : "122", "data" : [ [ @@ -2217,10 +2215,10 @@ "Blog", 20 ] - ], - "id" : "122" + ] }, { + "id" : "123", "data" : [ [ "Perl", @@ -2235,12 +2233,10 @@ 18 ] ], - "id" : "123", "name" : "123" }, { "name" : "124", - "id" : "124", "data" : [ [ "Perl", @@ -2254,10 +2250,11 @@ "Blog", 16 ] - ] + ], + "id" : "124" }, { - "id" : "125", + "name" : "125", "data" : [ [ "Perl", @@ -2272,10 +2269,9 @@ 11 ] ], - "name" : "125" + "id" : "125" }, { - "name" : "126", "id" : "126", "data" : [ [ @@ -2290,7 +2286,8 @@ "Blog", 19 ] - ] + ], + "name" : "126" }, { "id" : "127", @@ -2312,6 +2309,7 @@ }, { "id" : "128", + "name" : "128", "data" : [ [ "Perl", @@ -2325,11 +2323,10 @@ "Blog", 15 ] - ], - "name" : "128" + ] }, { - "id" : "129", + "name" : "129", "data" : [ [ "Perl", @@ -2344,11 +2341,10 @@ 14 ] ], - "name" : "129" + "id" : "129" }, { "name" : "130", - "id" : "130", "data" : [ [ "Perl", @@ -2362,10 +2358,11 @@ "Blog", 13 ] - ] + ], + "id" : "130" }, { - "id" : "131", + "name" : "131", "data" : [ [ "Perl", @@ -2380,10 +2377,10 @@ 17 ] ], - "name" : "131" + "id" : "131" }, { - "name" : "132", + "id" : "132", "data" : [ [ "Perl", @@ -2398,10 +2395,9 @@ 13 ] ], - "id" : "132" + "name" : "132" }, { - "name" : "133", "data" : [ [ "Perl", @@ -2416,9 +2412,12 @@ 18 ] ], + "name" : "133", "id" : "133" }, { + "id" : "134", + "name" : "134", "data" : [ [ "Perl", @@ -2432,13 +2431,9 @@ "Blog", 15 ] - ], - "id" : "134", - "name" : "134" + ] }, { - "name" : "135", - "id" : "135", "data" : [ [ "Perl", @@ -2452,7 +2447,9 @@ "Blog", 17 ] - ] + ], + "name" : "135", + "id" : "135" }, { "name" : "136", @@ -2473,7 +2470,7 @@ "id" : "136" }, { - "id" : "137", + "name" : "137", "data" : [ [ "Perl", @@ -2488,10 +2485,9 @@ 17 ] ], - "name" : "137" + "id" : "137" }, { - "name" : "138", "data" : [ [ "Perl", @@ -2506,9 +2502,11 @@ 20 ] ], + "name" : "138", "id" : "138" }, { + "id" : "139", "data" : [ [ "Perl", @@ -2523,11 +2521,11 @@ 19 ] ], - "id" : "139", "name" : "139" }, { "id" : "140", + "name" : "140", "data" : [ [ "Perl", @@ -2541,10 +2539,10 @@