aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-12-07 04:47:42 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-12-07 04:47:42 +0000
commite69eb5e1e357c46cb7f256345dc37a670d83c4e1 (patch)
tree3bbe636ffbbb719e0e69f212e73ad601609457b0
parentd1e02afff86a6891c02d5f1c78802c06ae9d2021 (diff)
downloadperlweeklychallenge-club-e69eb5e1e357c46cb7f256345dc37a670d83c4e1.tar.gz
perlweeklychallenge-club-e69eb5e1e357c46cb7f256345dc37a670d83c4e1.tar.bz2
perlweeklychallenge-club-e69eb5e1e357c46cb7f256345dc37a670d83c4e1.zip
- Added solutions by Flavio Poletti.
-rw-r--r--challenge-089/polettix/blog.txt1
-rw-r--r--challenge-089/polettix/blog1.txt1
-rw-r--r--challenge-089/polettix/perl/ch-1.pl17
-rw-r--r--challenge-089/polettix/perl/ch-2.pl124
-rw-r--r--stats/pwc-current.json287
-rw-r--r--stats/pwc-language-breakdown-summary.json62
-rw-r--r--stats/pwc-language-breakdown.json658
-rw-r--r--stats/pwc-leaders.json400
-rw-r--r--stats/pwc-summary-1-30.json106
-rw-r--r--stats/pwc-summary-121-150.json100
-rw-r--r--stats/pwc-summary-151-180.json102
-rw-r--r--stats/pwc-summary-181-210.json108
-rw-r--r--stats/pwc-summary-31-60.json98
-rw-r--r--stats/pwc-summary-61-90.json54
-rw-r--r--stats/pwc-summary-91-120.json104
-rw-r--r--stats/pwc-summary.json30
16 files changed, 1207 insertions, 1045 deletions
diff --git a/challenge-089/polettix/blog.txt b/challenge-089/polettix/blog.txt
new file mode 100644
index 0000000000..db5415038e
--- /dev/null
+++ b/challenge-089/polettix/blog.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2020/12/01/pwc089-gcd-sum/
diff --git a/challenge-089/polettix/blog1.txt b/challenge-089/polettix/blog1.txt
new file mode 100644
index 0000000000..2bcf247b1d
--- /dev/null
+++ b/challenge-089/polettix/blog1.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2020/12/02/pwc089-magical-matrix/
diff --git a/challenge-089/polettix/perl/ch-1.pl b/challenge-089/polettix/perl/ch-1.pl
new file mode 100644
index 0000000000..b5da2c4017
--- /dev/null
+++ b/challenge-089/polettix/perl/ch-1.pl
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl
+use 5.024;
+use warnings;
+use experimental qw< postderef signatures >;
+no warnings qw< experimental::postderef experimental::signatures >;
+
+sub gcd { my ($A, $B) = @_; ($A, $B) = ($B % $A, $A) while $A; return $B }
+
+sub GCD_sum ($N) {
+ my $sum = $N - 1; # gcd(1, $x) = 1
+ for my $lo (2 .. $N - 1) {
+ $sum += gcd($lo, $_) for $lo + 1 .. $N;
+ }
+ return $sum;
+}
+
+say GCD_sum(shift || 4);
diff --git a/challenge-089/polettix/perl/ch-2.pl b/challenge-089/polettix/perl/ch-2.pl
new file mode 100644
index 0000000000..b963f46932
--- /dev/null
+++ b/challenge-089/polettix/perl/ch-2.pl
@@ -0,0 +1,124 @@
+#!/usr/bin/env perl
+use 5.024;
+use warnings;
+use experimental qw< postderef signatures >;
+no warnings qw< experimental::postderef experimental::signatures >;
+use Storable 'dclone';
+
+my $M = magical_matrix(shift || 3);
+say {*STDOUT} '[ ', (map { sprintf '%3d', $_ } $_->@*), ' ]' for $M->@*;
+
+sub magical_matrix ($N) {
+ my $N2 = $N * $N;
+ my $solution = solve_by_constraints(
+ start => {
+ not_allocated => { map {$_ => 1} 1 .. $N2 },
+ field => [ (0) x $N2 ],
+ fine => {},
+ },
+ is_done => sub ($state) { keys($state->{not_allocated}->%*) == 0 },
+ constraints => [
+ (map {_constraint($N, $_ * $N, 1)} 0 .. ($N - 1)), # rows
+ (map {_constraint($N, $_, $N)} 0 .. ($N - 1)), # cols
+ _constraint($N, 0, $N + 1), # main diag
+ _constraint($N, $N - 1, $N - 1), # other diag
+ ],
+ search_factory => \&_search_factory,
+ ) or die "cannot find a solution for N = $N\n";
+ my $field = $solution->{field};
+ return [map {[splice $field->@*, 0, $N]} 1 .. $N];
+}
+
+sub _search_factory ($state) {
+ my %not_allocated = $state->{not_allocated}->%*;
+ my @candidates = keys %not_allocated;
+ my $current = undef;
+
+ my @field = $state->{field}->@*;
+ my $pos = undef;
+ for my $i (0 .. $#field) {
+ next if $field[$i];
+ $pos = $i;
+ last;
+ }
+ die 'no unassigned position (WTF?!?)' unless defined $pos;
+
+ my %fine = $state->{fine}->%*;
+
+ return sub ($state) {
+ return 0 unless @candidates;
+
+ $not_allocated{$current} = 1 if defined $current;
+ $current = shift @candidates;
+ delete $not_allocated{$current};
+
+ $field[$pos] = $current;
+ $state->{field} = [@field];
+ $state->{not_allocated} = { %not_allocated };
+ $state->{fine} = { %fine };
+
+ return 1;
+ };
+}
+
+sub _constraint ($N, $start, $delta) {
+ my $N2 = $N * $N;
+ my $target_sum = ($N2 + 1) * $N / 2;
+ return sub ($state) {
+ return 0 if $state->{fine}{"$start-$delta"};
+ my ($field, $not_allocated) = $state->@{qw< field not_allocated >};
+ my $available = $target_sum;
+ my @missing_indexes;
+ my $j = 0;
+ while ($j < $N) {
+ my $i = $start + $delta * $j++;
+ if (my $v = $field->[$i]) { $available -= $v }
+ else { push @missing_indexes, $i }
+ }
+ die "wrong sum, too much" if $available < 0;
+ my $n_missing = scalar @missing_indexes;
+
+ if ($n_missing == 0) { # every value is fixed here, check the sum
+ die 'wrong sum' if $available;
+ $state->{fine}{"$start-$delta"} = 1;
+ return 0; # check OK, no change
+ }
+
+ if ($n_missing == 1) { # fix the one that's left
+ die "invalid residual value"
+ unless exists $not_allocated->{$available};
+ delete $not_allocated->{$available};
+ $field->[$missing_indexes[0]] = $available;
+ return 1; # yes, we did one change
+ }
+
+ return 0; # no change happened
+ }
+}
+
+sub solve_by_constraints {
+ my %args = (@_ && ref($_[0])) ? %{$_[0]} : @_;
+ my @reqs = qw< constraints is_done search_factory start >;
+ exists($args{$_}) || die "missing parameter '$_'" for @reqs;
+ my ($constraints, $done, $factory, $state, @stack) = @args{@reqs};
+ my $logger = $args{logger} // undef;
+ while ('necessary') {
+ last if eval { # eval - constraints might complain loudly...
+ $logger->(validating => $state) if $logger;
+ my $changed = -1;
+ while ($changed != 0) {
+ $changed = 0;
+ $changed += $_->($state) for @$constraints;
+ $logger->(pruned => $state) if $logger;
+ } ## end while ($changed != 0)
+ $done->($state) || (push(@stack, $factory->($state)) && undef);
+ };
+ $logger->(backtrack => $state, $@) if $logger;
+ while (@stack) {
+ last if $stack[-1]->($state);
+ pop @stack;
+ }
+ return unless @stack;
+ } ## end while ('necessary')
+ return $state;
+} ## end sub solve_by_constraints
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 7c442be1d0..e395ed37ed 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,17 +1,25 @@
{
"subtitle" : {
- "text" : "[Champions: 36] Last updated at 2020-12-07 03:58:58 GMT"
+ "text" : "[Champions: 37] Last updated at 2020-12-07 04:47:30 GMT"
},
- "title" : {
- "text" : "Perl Weekly Challenge - 089"
+ "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/>"
+ },
+ "xAxis" : {
+ "type" : "category"
},
"legend" : {
"enabled" : 0
},
+ "title" : {
+ "text" : "Perl Weekly Challenge - 089"
+ },
"series" : [
{
- "colorByPoint" : 1,
"name" : "Perl Weekly Challenge - 089",
+ "colorByPoint" : 1,
"data" : [
{
"drilldown" : "Aaron Smith",
@@ -25,18 +33,18 @@
},
{
"y" : 4,
- "name" : "Adam Russell",
- "drilldown" : "Adam Russell"
+ "drilldown" : "Adam Russell",
+ "name" : "Adam Russell"
},
{
+ "y" : 2,
"name" : "Alexander Karelas",
- "drilldown" : "Alexander Karelas",
- "y" : 2
+ "drilldown" : "Alexander Karelas"
},
{
+ "y" : 2,
"drilldown" : "Alexander Pankoff",
- "name" : "Alexander Pankoff",
- "y" : 2
+ "name" : "Alexander Pankoff"
},
{
"drilldown" : "Andrew Shitov",
@@ -44,29 +52,29 @@
"y" : 2
},
{
- "y" : 5,
"drilldown" : "Arne Sommer",
- "name" : "Arne Sommer"
+ "name" : "Arne Sommer",
+ "y" : 5
},
{
+ "y" : 4,
"name" : "Athanasius",
- "drilldown" : "Athanasius",
- "y" : 4
+ "drilldown" : "Athanasius"
},
{
- "drilldown" : "Cheok-Yin Fung",
"name" : "Cheok-Yin Fung",
+ "drilldown" : "Cheok-Yin Fung",
"y" : 3
},
{
- "y" : 2,
+ "name" : "Clifton Wood",
"drilldown" : "Clifton Wood",
- "name" : "Clifton Wood"
+ "y" : 2
},
{
- "y" : 3,
"drilldown" : "Dave Jacoby",
- "name" : "Dave Jacoby"
+ "name" : "Dave Jacoby",
+ "y" : 3
},
{
"y" : 2,
@@ -74,14 +82,19 @@
"name" : "Duncan C. White"
},
{
- "drilldown" : "E. Choroba",
"name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
"y" : 2
},
{
"y" : 2,
- "drilldown" : "Feng Chang",
- "name" : "Feng Chang"
+ "name" : "Feng Chang",
+ "drilldown" : "Feng Chang"
+ },
+ {
+ "drilldown" : "Flavio Poletti",
+ "name" : "Flavio Poletti",
+ "y" : 4
},
{
"drilldown" : "Jaldhar H. Vyas",
@@ -89,34 +102,34 @@
"y" : 5
},
{
- "y" : 2,
"name" : "James Smith",
- "drilldown" : "James Smith"
+ "drilldown" : "James Smith",
+ "y" : 2
},
{
- "drilldown" : "Jan Krnavek",
+ "y" : 2,
"name" : "Jan Krnavek",
- "y" : 2
+ "drilldown" : "Jan Krnavek"
},
{
- "y" : 2,
+ "name" : "Joel Crosswhite",
"drilldown" : "Joel Crosswhite",
- "name" : "Joel Crosswhite"
+ "y" : 2
},
{
"y" : 2,
- "name" : "Jorg Sommrey",
- "drilldown" : "Jorg Sommrey"
+ "drilldown" : "Jorg Sommrey",
+ "name" : "Jorg Sommrey"
},
{
- "drilldown" : "Julio de Castro",
+ "y" : 4,
"name" : "Julio de Castro",
- "y" : 4
+ "drilldown" : "Julio de Castro"
},
{
+ "y" : 4,
"name" : "Kang-min Liu",
- "drilldown" : "Kang-min Liu",
- "y" : 4
+ "drilldown" : "Kang-min Liu"
},
{
"name" : "Laurent Rosenfeld",
@@ -124,34 +137,34 @@
"y" : 5
},
{
- "drilldown" : "Lubos Kolouch",
"name" : "Lubos Kolouch",
+ "drilldown" : "Lubos Kolouch",
"y" : 2
},
{
- "y" : 2,
"name" : "Mark Anderson",
- "drilldown" : "Mark Anderson"
+ "drilldown" : "Mark Anderson",
+ "y" : 2
},
{
- "y" : 2,
"drilldown" : "Miguel Prz",
- "name" : "Miguel Prz"
+ "name" : "Miguel Prz",
+ "y" : 2
},
{
- "drilldown" : "Niels van Dijke",
+ "y" : 2,
"name" : "Niels van Dijke",
- "y" : 2
+ "drilldown" : "Niels van Dijke"
},
{
- "y" : 2,
"name" : "Nuno Vieira",
- "drilldown" : "Nuno Vieira"
+ "drilldown" : "Nuno Vieira",
+ "y" : 2
},
{
"y" : 2,
- "name" : "Philip Hood",
- "drilldown" : "Philip Hood"
+ "drilldown" : "Philip Hood",
+ "name" : "Philip Hood"
},
{
"drilldown" : "Roger Bell_West",
@@ -169,14 +182,14 @@
"y" : 2
},
{
- "y" : 2,
+ "name" : "Stuart Little",
"drilldown" : "Stuart Little",
- "name" : "Stuart Little"
+ "y" : 2
},
{
- "y" : 4,
+ "drilldown" : "Ulrich Rieke",
"name" : "Ulrich Rieke",
- "drilldown" : "Ulrich Rieke"
+ "y" : 4
},
{
"name" : "W. Luis Mochan",
@@ -184,47 +197,39 @@
"y" : 3
},
{
+ "y" : 3,
"name" : "Walt Mankowski",
- "drilldown" : "Walt Mankowski",
- "y" : 3
+ "drilldown" : "Walt Mankowski"
},
{
"y" : 2,
- "drilldown" : "Wanderdoc",
- "name" : "Wanderdoc"
+ "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/>",
- "followPointer" : 1,
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>"
- },
- "xAxis" : {
- "type" : "category"
- },
"chart" : {
"type" : "column"
},
"plotOptions" : {
"series" : {
+ "borderWidth" : 0,
"dataLabels" : {
"format" : "{point.y}",
"enabled" : 1
- },
- "borderWidth" : 0
+ }
+ }
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
},
"drilldown" : {
"series" : [
{
- "id" : "Aaron Smith",
+ "name" : "Aaron Smith",
"data" : [
[
"Raku",
@@ -235,9 +240,10 @@
1
]
],
- "name" : "Aaron Smith"
+ "id" : "Aaron Smith"
},
{
+ "id" : "Abigail",
"data" : [
[
"Perl",
@@ -248,11 +254,9 @@
2
]
],
- "name" : "Abigail",
- "id" : "Abigail"
+ "name" : "Abigail"
},
{
- "name" : "Adam Russell",
"data" : [
[
"Perl",
@@ -263,29 +267,32 @@
2
]
],
- "id" : "Adam Russell"
+ "id" : "Adam Russell",
+ "name" : "Adam Russell"
},
{
- "name" : "Alexander Karelas",
"data" : [
[
"Perl",
2
]
],
- "id" : "Alexander Karelas"
+ "id" : "Alexander Karelas",
+ "name" : "Alexander Karelas"
},
{
- "id" : "Alexander Pankoff",
- "name" : "Alexander Pankoff",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Alexander Pankoff",
+ "name" : "Alexander Pankoff"
},
{
+ "name" : "Andrew Shitov",
+ "id" : "Andrew Shitov",
"data" : [
[
"Perl",
@@ -295,12 +302,9 @@
"Raku",
1
]
- ],
- "name" : "Andrew Shitov",
- "id" : "Andrew Shitov"
+ ]
},
{
- "id" : "Arne Sommer",
"name" : "Arne Sommer",
"data" : [
[
@@ -315,9 +319,11 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Arne Sommer"
},
{
+ "name" : "Athanasius",
"id" : "Athanasius",
"data" : [
[
@@ -328,11 +334,11 @@
"Raku",
2
]
- ],
- "name" : "Athanasius"
+ ]
},
{
"name" : "Cheok-Yin Fung",
+ "id" : "Cheok-Yin Fung",
"data" : [
[
"Perl",
@@ -342,12 +348,11 @@
"Blog",
1
]
- ],
- "id" : "Cheok-Yin Fung"
+ ]
},
{
- "id" : "Clifton Wood",
"name" : "Clifton Wood",
+ "id" : "Clifton Wood",
"data" : [
[
"Raku",
@@ -356,8 +361,8 @@
]
},
{
- "id" : "Dave Jacoby",
"name" : "Dave Jacoby",
+ "id" : "Dave Jacoby",
"data" : [
[
"Perl",
@@ -380,26 +385,41 @@
"name" : "Duncan C. White"
},
{
+ "name" : "E. Choroba",
"data" : [
[
"Perl",
2
]
],
- "name" : "E. Choroba",
"id" : "E. Choroba"
},
{
+ "name" : "Feng Chang",
"id" : "Feng Chang",
"data" : [
[
"Raku",
2
]
+ ]
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 2
+ ]
],
- "name" : "Feng Chang"
+ "id" : "Flavio Poletti",
+ "name" : "Flavio Poletti"
},
{
+ "id" : "Jaldhar H. Vyas",
"data" : [
[
"Perl",
@@ -414,8 +434,7 @@
1
]
],
- "name" : "Jaldhar H. Vyas",
- "id" : "Jaldhar H. Vyas"
+ "name" : "Jaldhar H. Vyas"
},
{
"data" : [
@@ -424,8 +443,8 @@
2
]
],
- "name" : "James Smith",
- "id" : "James Smith"
+ "id" : "James Smith",
+ "name" : "James Smith"
},
{
"name" : "Jan Krnavek",
@@ -438,14 +457,14 @@
"id" : "Jan Krnavek"
},
{
- "id" : "Joel Crosswhite",
- "name" : "Joel Crosswhite",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Joel Crosswhite",
+ "name" : "Joel Crosswhite"
},
{
"data" : [
@@ -454,11 +473,10 @@
2
]
],
- "name" : "Jorg Sommrey",
- "id" : "Jorg Sommrey"
+ "id" : "Jorg Sommrey",
+ "name" : "Jorg Sommrey"
},
{
- "id" : "Julio de Castro",
"name" : "Julio de Castro",
"data" : [
[
@@ -469,10 +487,11 @@
"Raku",
2
]
- ]
+ ],
+ "id" : "Julio de Castro"
},
{
- "name" : "Kang-min Liu",
+ "id" : "Kang-min Liu",
"data" : [
[
"Raku",
@@ -483,9 +502,11 @@
2
]
],
- "id" : "Kang-min Liu"
+ "name" : "Kang-min Liu"
},
{
+ "name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -499,33 +520,31 @@
"Blog",
1
]
- ],
- "name" : "Laurent Rosenfeld",
- "id" : "Laurent Rosenfeld"
+ ]
},
{
+ "id" : "Lubos Kolouch",
"data" : [
[
"Perl",
2
]
],
- "name" : "Lubos Kolouch",
- "id" : "Lubos Kolouch"
+ "name" : "Lubos Kolouch"
},
{
- "id" : "Mark Anderson",
"name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "id" : "Mark Anderson"
},
{
- "id" : "Miguel Prz",
"name" : "Miguel Prz",
+ "id" : "Miguel Prz",
"data" : [
[
"Perl",
@@ -534,24 +553,24 @@
]
},
{
- "id" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
],
- "name" : "Niels van Dijke"
+ "id" : "Niels van Dijke"
},
{
"name" : "Nuno Vieira",
+ "id" : "Nuno Vieira",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Nuno Vieira"
+ ]
},
{
"data" : [
@@ -560,10 +579,11 @@
2
]
],
- "name" : "Philip Hood",
- "id" : "Philip Hood"
+ "id" : "Philip Hood",
+ "name" : "Philip Hood"
},
{
+ "name" : "Roger Bell_West",
"id" : "Roger Bell_West",
"data" : [
[
@@ -578,10 +598,11 @@
"Blog",
1
]
- ],
- "name" : "Roger Bell_West"
+ ]
},
{
+ "name" : "Simon Green",
+ "id" : "Simon Green",
"data" : [
[
"Perl",
@@ -591,32 +612,30 @@
"Blog",
1
]
- ],
- "name" : "Simon Green",
- "id" : "Simon Green"
+ ]
},
{
+ "name" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
],
- "name" : "Simon Proctor",
"id" : "Simon Proctor"
},
{
- "name" : "Stuart Little",
+ "id" : "Stuart Little",
"data" : [
[
"Raku",
2
]
],
- "id" : "Stuart Little"
+ "name" : "Stuart Little"
},
{
- "name" : "Ulrich Rieke",
+ "id" : "Ulrich Rieke",
"data" : [
[
"Perl",
@@ -627,10 +646,10 @@
2
]
],
- "id" : "Ulrich Rieke"
+ "name" : "Ulrich Rieke"
},
{
- "id" : "W. Luis Mochan",
+ "name" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -641,10 +660,10 @@
1
]
],
- "name" : "W. Luis Mochan"
+ "id" : "W. Luis Mochan"
},
{
- "name" : "Walt Mankowski",
+ "id" : "Walt Mankowski",
"data" : [
[
"Perl",
@@ -655,16 +674,16 @@
1
]
],
- "id" : "Walt Mankowski"
+ "name" : "Walt Mankowski"
},
{
+ "name" : "Wanderdoc",
"data" : [
[
"Perl",
2
]
],
- "name" : "Wanderdoc",
"id" : "Wanderdoc"
}
]
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 12f379133c..740b5bea7b 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,63 +1,63 @@
{
- "yAxis" : {
- "title" : {
- "text" : null
- },
- "min" : 0
+ "chart" : {
+ "type" : "column"
},
"series" : [
{
- "dataLabels" : {
- "enabled" : "true",
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "rotation" : -90,
- "y" : 10,
- "align" : "right",
- "format" : "{point.y:.0f}",
- "color" : "#FFFFFF"
- },
+ "name" : "Contributions",
"data" : [
[
"Blog",
- 1160
+ 1162
],
[
"Perl",
- 4015
+ 4017
],
[
"Raku",
- 2642
+ 2644
]
],
- "name" : "Contributions"
+ "dataLabels" : {
+ "align" : "right",
+ "format" : "{point.y:.0f}",
+ "y" : 10,
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "color" : "#FFFFFF",
+ "rotation" : -90,
+ "enabled" : "true"
+ }
}
],
- "legend" : {
- "enabled" : "false"
+ "yAxis" : {
+ "min" : 0,
+ "title" : {
+ "text" : null
+ }
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
},
"subtitle" : {
- "text" : "Last updated at 2020-12-07 03:58:58 GMT"
+ "text" : "Last updated at 2020-12-07 04:47:30 GMT"
},
"title" : {
"text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
},
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
"xAxis" : {
+ "type" : "category",
"labels" : {
"style" : {
"fontSize" : "13px",
"fontFamily" : "Verdana, sans-serif"
}
- },
- "type" : "category"
+ }
},
- "chart" : {
- "type" : "column"
+ "legend" : {
+ "enabled" : "false"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 9fdbb49dfe..553080d2e0 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,27 +1,25 @@
{
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
- }
- },
- "chart" : {
- "type" : "column"
+ "legend" : {
+ "enabled" : "false"
},
"xAxis" : {
"type" : "category"
},
+ "title" : {
+ "text" : "Perl Weekly Challenge Language"
+ },
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-12-07 04:47:30 GMT"
+ },
"tooltip" : {
+ "headerFormat" : "<span style=\"font-size:11px\"></span>",
"followPointer" : "true",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
- "headerFormat" : "<span style=\"font-size:11px\"></span>"
+ "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
},
"drilldown" : {
"series" : [