From 9b37f3b78037881450da419f02fcd7b16652ad3e Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sun, 13 Sep 2020 19:11:51 +0100 Subject: - Added solutions by Cheok-Yin Fung. --- challenge-077/cheok-yin-fung/BLOG.txt | 1 + challenge-077/cheok-yin-fung/common-lisp/ch-1.lsp | 116 + challenge-077/cheok-yin-fung/perl/ch-1.pl | 138 + challenge-077/cheok-yin-fung/perl/ch-2.pl | 155 ++ challenge-077/cheok-yin-fung/python/ch-1.py | 77 + stats/pwc-current.json | 519 ++-- stats/pwc-language-breakdown-summary.json | 48 +- stats/pwc-language-breakdown.json | 3070 ++++++++++----------- stats/pwc-leaders.json | 750 ++--- stats/pwc-summary-1-30.json | 120 +- stats/pwc-summary-121-150.json | 126 +- stats/pwc-summary-151-180.json | 114 +- stats/pwc-summary-181-210.json | 40 +- stats/pwc-summary-31-60.json | 112 +- stats/pwc-summary-61-90.json | 38 +- stats/pwc-summary-91-120.json | 122 +- stats/pwc-summary.json | 52 +- 17 files changed, 3052 insertions(+), 2546 deletions(-) create mode 100644 challenge-077/cheok-yin-fung/BLOG.txt create mode 100644 challenge-077/cheok-yin-fung/common-lisp/ch-1.lsp create mode 100644 challenge-077/cheok-yin-fung/perl/ch-1.pl create mode 100644 challenge-077/cheok-yin-fung/perl/ch-2.pl create mode 100644 challenge-077/cheok-yin-fung/python/ch-1.py diff --git a/challenge-077/cheok-yin-fung/BLOG.txt b/challenge-077/cheok-yin-fung/BLOG.txt new file mode 100644 index 0000000000..d10156262b --- /dev/null +++ b/challenge-077/cheok-yin-fung/BLOG.txt @@ -0,0 +1 @@ +http://blogs.perl.org/users/c_y_fung/2020/09/cy-077.html diff --git a/challenge-077/cheok-yin-fung/common-lisp/ch-1.lsp b/challenge-077/cheok-yin-fung/common-lisp/ch-1.lsp new file mode 100644 index 0000000000..01ce85f6e1 --- /dev/null +++ b/challenge-077/cheok-yin-fung/common-lisp/ch-1.lsp @@ -0,0 +1,116 @@ +; The Weekly Challenge - Perl & Raku #077 +; Task 1 Fibonacci Sum +; Lisp script + +(defun vequalp (s1 s2) + (and (subsetp s1 s2) (subsetp s2 s1))) + + +(defun anyeq (x y) + (cond ((null x) nil) + ((vequalp y (first x)) t) + (t (anyeq (rest x) y )))) + + +(setf *N* 80) + +(setf *counter* 1) + +(setf *FIBSEQ* (list 1 1)) + + +(defun larger-fib-num () + (setf tempseq (reverse *FIBSEQ*)) + (cond ((>= (first tempseq) *N* ) nil) + (t (progn + (push (+ (first tempseq) (second tempseq) ) tempseq) + (setf *FIBSEQ* (reverse tempseq)) + (larger-fib-num) )))) + +(larger-fib-num) + +(setf *copy-fibseq* (reverse *FIBSEQ*)) + +(setf *firstsum* () ) + +(defun greedy (target) + (cond + ((= target 0) nil) + ((>= target (first *copy-fibseq*)) (progn + (setf tempitem (first *copy-fibseq*)) + (pop *copy-fibseq*) + (push (length *copy-fibseq*) *firstsum*) + (greedy (- target tempitem ) ))) + ((< target (first *copy-fibseq*)) (progn + (pop *copy-fibseq*) (greedy target))))) + +(greedy *N*) + +(setf *answer* (list (reverse *firstsum*)) ) + +(defun is-a-new-discovery (thelist) + (if (anyeq *answer* thelist) + () + (progn + (nconc *answer* (list thelist)) + (incf *counter*)))) + +(defun a-loop (oldanswer) + (if (equal *counter* 0) () (progn + (setf a-list (car oldanswer)) + (setf *counter* 0) + (expand-one-by-one a-list) + (lasttwo a-list) + (lastone a-list) + (setf oldanswer (rest oldanswer)) + (a-loop oldanswer)))) + +(defun expand (k uinput) + (setf TTBR (nth k uinput) ) + (if + (or (equal (nth (+ 1 k) uinput ) (- TTBR 1) ) + (equal (nth (+ 1 k) uinput ) (- TTBR 2) )) + () + (progn + (setf newlist (remove TTBR uinput ) ) + (setf newlist (cons (- TTBR 1) newlist ) ) + (setf newlist (cons (- TTBR 2) newlist ) ) + (sort newlist '>) + (is-a-new-discovery newlist)))) + +(defun lastone (uinput) + (if (> (length uinput) 0) (progn + (setf TTBR (nth (- (length uinput) 1) uinput )) + (if (> TTBR 2) + (progn + (setf newlist (remove TTBR uinput ) ) + (setf newlist (cons (- TTBR 1) newlist ) ) + (setf newlist (cons (- TTBR 2) newlist ) ) + (sort newlist '>) + (is-a-new-discovery newlist)))))) + +(defun lasttwo (uinput) + (if (> (length uinput) 1) (progn + (setf TTBR (nth (- (length uinput) 2) uinput )) + (if + (and (> TTBR 2) + (> (- TTBR 2) (nth (- (length uinput) 1 ) uinput))) + (progn + (setf newlist (remove TTBR uinput ) ) + (setf newlist (cons (- TTBR 1) newlist ) ) + (setf newlist (cons (- TTBR 2) newlist ) ) + (sort newlist '>) + (is-a-new-discovery newlist)))))) + +(defun expand-one-by-one (urinput) + (dotimes (j (- (length urinput) 2)) + (expand j urinput))) + +(a-loop *answer*) + +(format T "number of summation(s)~%" ) +(format T (write-to-string (length *answer*))) +(format t "~%") +(dolist (a-seq *answer*) + (print (mapcar #'(lambda (term) (nth term *fibseq*)) a-seq)) + (format T "~%")) diff --git a/challenge-077/cheok-yin-fung/perl/ch-1.pl b/challenge-077/cheok-yin-fung/perl/ch-1.pl new file mode 100644 index 0000000000..be43fd8732 --- /dev/null +++ b/challenge-077/cheok-yin-fung/perl/ch-1.pl @@ -0,0 +1,138 @@ +#!/usr/bin/perl +# The Weekly Challenge - Perl & Raku +# #077 Task 1 Fibonacci Sum +# task statement: +# Write a script to find how many ways you make +# sum $S from the Fibb numbers. +# You are NOT allowed to repeat a number. +# Print 0 if none found. +# +# Usage: ch-1.pl $N +# +# Additional Usage: ch-1.pl $N -r +# for displaying terms from large to small +# +# verify code aided by this page by Dr Ron Knott: +# http://www.maths.surrey.ac.uk/hosted-sites/ +# R.Knott/Fibonacci/fibrep.html#section3.2 +use strict; +use warnings; + +my $N; +if ($ARGV[0]) {$N = $ARGV[0];} else {$N = 1015;} + +my @FIBSEQ = (1, 1); + +sub generate_up_to_N { + my $r = 1; + while ($N > $FIBSEQ[$r]) { + $FIBSEQ[$r+1] = $FIBSEQ[$r]+$FIBSEQ[$r-1]; + $r++; + } +} + +generate_up_to_N; + +# Use Greedy Algorithm to get a first +# Fibonacci number summation first +sub get_fibfundsum_index { + my $target = $_[0]; + my @fans = (); + my $s = $#FIBSEQ; + while ($target != 0) { + if ($target >= $FIBSEQ[$s]) { + $target = $target - $FIBSEQ[$s]; + push @fans, $s; + } + $s--; + } + return @fans; +} + +my @mainlist = ( [get_fibfundsum_index($N)] ); + +my %unique; # avoid redundancy + +# variable for the loop in subroutine fibsum +my $count = 1; + +#============================ +# subrountines +#============================ + +# avoid redundancy instead of directly push +# also check if the loop modify the list of solutions +sub is_it_new_discovery { + if (not($unique{join",",@_})) { + push @mainlist, [@_]; + $unique{join",",@_} = 1; + $count++; + } +} + +# main dish +sub fibsum { + while ($count > 0) { + $count = 0; + my @oldlist = @mainlist; + my $size_of_oldlist = scalar @oldlist; + for my $i (0..$size_of_oldlist-1) { + for my $p (0..scalar @{$oldlist[$i]}) { + expand( $p , $oldlist[$i] ); + } + } + } +} + +# turn a Fib num F_k into F_{k-1} + F_{k-2} +# if the latter two haven't appeared in the summation +sub expand { + my $index = $_[0]; + my @arr = @{$_[1]}; + + my @newarr = @arr; + my $bool_expandable = undef; + + if (defined($arr[$index+1])) { + $bool_expandable = ($arr[$index] - $arr[$index+1] >= 3); + } + elsif ($index == $#arr) { + $bool_expandable = ($arr[$index] >= 3); + } + + while ($bool_expandable) { + splice(@newarr, $index, 1, + ($arr[$index]-1, $arr[$index]-2 ) ) ; + is_it_new_discovery(@newarr); + @arr = @newarr; + $index = $index+1; + $bool_expandable = ( ( $index == $#arr and $arr[$index] >= 3) or + ( defined($arr[$index+1]) + and ($arr[$index]-$arr[$index+1] >= 3)) ); + } + + my @recaddarray = @arr; + $index = $index-3; + if ( ($index >= 0) && ($arr[$index]-$arr[$index+1] == 3)) { + splice(@recaddarray, $index, 1, + ( $arr[$index]-1, $arr[$index]-2 ) ) ; + is_it_new_discovery(@recaddarray); + } +} + +#============================ + +fibsum; + + +print "number of summations: " , scalar @mainlist, "\n"; +for my $array_k (@mainlist) { + if ( defined($ARGV[1]) && ($ARGV[1] eq "-r") ) { + print join " + ", map {$FIBSEQ[$_]} @{$array_k}; + } + else { + print join " + ", reverse map {$FIBSEQ[$_]} @{$array_k}; + } + print " = $N\n"; +} + diff --git a/challenge-077/cheok-yin-fung/perl/ch-2.pl b/challenge-077/cheok-yin-fung/perl/ch-2.pl new file mode 100644 index 0000000000..e5b4026bed --- /dev/null +++ b/challenge-077/cheok-yin-fung/perl/ch-2.pl @@ -0,0 +1,155 @@ +#!/usr/bin/perl +# Perl Weekly Challenge #077 Task 2 Lonely X +# task statement: +# You are given m x n character matrix +# consists of O and X only. +# Write a script to count the total number of X +# surrounded by O only. +# Print 0 if none found. +# Usage: ch-2.pl $m $n [terms on the matrix, +# from a_1_1, a_1_2, a_1_3 to a_m_n] +# +# Test for Official Example 2 : +# ch-2.pl 4 4 O O X O X O O O X O O X O X O O +use strict; +use warnings; + +unless (@ARGV) {die "No arguments given! I need: +\$m \$n a_1_1 a_1_2 a_1_3 .. a_m_n"} + +my @matrix = (); + +my $m = shift @ARGV; + +my $n = shift @ARGV; + +for my $colnum (1..$m) { + $matrix[$colnum-1] = [ @ARGV[$n*($colnum-1)..$n*$colnum-1] ]; +} + +=pod +#Here are some test cases; +my @matrix = ( ["O", "O" , "X"], ["X", "O", "O"], + ["X", "O", "O"]) ; #example 1 +($m, $n) = (3, 3) + +my @matrix = ( ["O", "X" , "X", "O"], ["X", "O", "O", "X"], + ["O", "O", "O", "O"]) ; +($m, $n) = (3, 4); + +my @matrix = ( ["O", "X" , "O"], ["X", "O", "O"], + ["O", "X", "O" ], ["O", "O", "O"], ["O", "X", "O"]) ; +($m, $n) = (5, 3) + +my @matrix = ( ["O", "X" , "O", "O"], ["X", "O", "X", "O"], + ["O", "O", "O","O" ]) ; +($m, $n) = (3, 4); +=cut + +print_matrix(\@matrix); + +sub detect { + my $segment = join "", @_; + $segment =~ s/XI/II/g; + $segment =~ s/IX/II/g; + $segment =~ s/XX/II/g; + return split //, $segment; +} + +for my $i (0..$m-1) { + @{$matrix[$i]} = detect @{$matrix[$i]}; +} + +for my $j (0..$n-1) { + my @u = detect map {${$matrix[$_]}[$j]} (0..$m-1); + ${$matrix[$_]}[$j] = $u[$_] for (0..$m-1); +} + +sub xyreverse { + my @mat = @{$_[0]}; + my @newmat = (); + my $t_xlen = scalar @{$mat[0]}; + my $t_ylen = scalar @mat; + for my $y (0..$t_ylen-1) { + for my $x (0..$t_xlen-1) { + ${$newmat[$x]}[$y] = ${$mat[$y]}[$x]; + } + } + return \@newmat; +} + +@matrix = @{diagonal_operation(\@matrix)}; + +sub diagonal_operation { + my @mat = @{$_[0]}; + my $t_ylen = scalar @mat; + my $t_xlen = scalar @{$mat[0]}; + if ($t_xlen >= $t_ylen) { + my $t_diff = $t_xlen - $t_ylen; + my $t_limit = $t_ylen; + for my $c (0..$t_diff) { + my @u = detect + (map {${$mat[$_]}[$c+$_]} (0..$t_ylen-1)) ; + ${$mat[$_]}[$c+$_] = $u[$_] for (0..$t_ylen-1); + } + + for my $d (0..$t_limit-2) { + my @u = detect + (map {${$mat[$_]}[$t_diff+$d+1+$_]} (0..$t_limit-$d-2)) ; + ${$mat[$_]}[$t_diff+$d+1+$_] = $u[$_] for (0..$t_limit-$d-2) ; + my @v = detect + (map {${$mat[$d+1+$_]}[$_]} (0..$t_limit-$d-2)) ; + ${$mat[$d+1+$_]}[$_] = $v[$_] for (0..$t_limit-$d-2) ; + } + + return \@mat; + } + else { + return xyreverse diagonal_operation(xyreverse(\@mat)); + } +} + +sub vertical_reflection { + my @mat = @{$_[0]}; + my @newmat; + my $t_xlen = scalar @{$mat[0]}; + my $t_ylen = scalar @mat; + for my $i (0..$t_ylen-1) { + @{$newmat[$i]} = (); + for my $j (0..$t_xlen-1) { + ${$newmat[$i]}[$j] = ${$mat[$i]}[-1-$j]; + } + } + return \@newmat; +} + +#find antidiagonal +@matrix = @{vertical_reflection diagonal_operation + vertical_reflection(\@matrix)}; + +sub print_matrix { + my @mat = @{$_[0]}; + my $t_xlen = scalar @{$mat[0]}; + my $t_ylen = scalar @mat; + for my $i (0..$t_ylen-1) { + print "[ "; + for my $j (0..$t_xlen-1) { + print ${$mat[$i]}[$j], " "; + } + print "]\n"; + } +} + +print "\n------------\n"; + +my $count = 0; + +for my $row (0..$m-1) { + for my $col (0..$n-1) { + if (${$matrix[$row]}[$col] eq "X") { + $count++; + } + } +} + +print $count, "\n"; diff --git a/challenge-077/cheok-yin-fung/python/ch-1.py b/challenge-077/cheok-yin-fung/python/ch-1.py new file mode 100644 index 0000000000..e055718908 --- /dev/null +++ b/challenge-077/cheok-yin-fung/python/ch-1.py @@ -0,0 +1,77 @@ +# Python3 +# The Weekly Challenge - Perl & Raku +# #077 Task 1 Fibonacci Sum, Python script + +def is_it_new_discovery(newsum): + global count + global ans + if not(newsum in ans): + ans.append(newsum) + count = count + 1 + +def fibsum(): + global count + global ans + while count > 0: + count = 0 + oldlist = ans.copy() + for i in range( len(oldlist) ): + for p in range( len(oldlist[i]) ): + expand( p, oldlist[i] ) + + +def expand( index , a_list): + if index < len(a_list)-1: + if a_list[index] - a_list[index+1] >= 3: + newlist = [] + for i in range(0,index): + newlist.append(a_list[i]) + newlist.append(a_list[index]-1) + newlist.append(a_list[index]-2) + for i in range(index+1,len(a_list)): + newlist.append(a_list[i]) + is_it_new_discovery(newlist) + else: + if index == len(a_list)-1 and a_list[index] >= 3: + newlist = [] + for i in range(0,index-1): + newlist.append(a_list[i]) + newlist.append(a_list[index]-1) + newlist.append(a_list[index]-2) + is_it_new_discovery(newlist) + +def fibnumlist(a_list): + return list(map( lambda x: fib[x], a_list)) + +if __name__ == "__main__": + N = int(input("Enter the number you are concerning with:\n")) + + ans = [] + + count = 1 + + fundsum = [] + fib = [] + fib.append(1) + fib.append(1) + k = 1; + while N > fib[k]: + k = k+1 + fib.append(fib[k-1] + fib[k-2]) + if N == fib[k]: + r = k + else: + r = k-1 + + target = N + while target != 0: + if target >= fib[r]: + target = target - fib[r] + fundsum.append(r) + r = r-1 + + ans.append(fundsum) + fibsum() + for a_list in ans: + print(fibnumlist(a_list)) + print("number of solution(s): ", len(ans)) diff --git a/stats/pwc-current.json b/stats/pwc-current.json index ddcc901db7..6101c1131f 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,205 +1,17 @@ { - "tooltip" : { - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
", - "followPointer" : 1 - }, - "legend" : { - "enabled" : 0 - }, - "series" : [ - { - "data" : [ - { - "drilldown" : "Alexander Pankoff", - "name" : "Alexander Pankoff", - "y" : 2 - }, - { - "y" : 2, - "name" : "Andinus", - "drilldown" : "Andinus" - }, - { - "y" : 5, - "drilldown" : "Andrew Shitov", - "name" : "Andrew Shitov" - }, - { - "y" : 3, - "name" : "Arne Sommer", - "drilldown" : "Arne Sommer" - }, - { - "drilldown" : "Athanasius", - "name" : "Athanasius", - "y" : 4 - }, - { - "name" : "Bob Lied", - "drilldown" : "Bob Lied", - "y" : 2 - }, - { - "name" : "Colin Crain", - "drilldown" : "Colin Crain", - "y" : 1 - }, - { - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "E. Choroba", - "name" : "E. Choroba" - }, - { - "drilldown" : "Feng Chang", - "name" : "Feng Chang", - "y" : 2 - }, - { - "drilldown" : "Flavio Poletti", - "name" : "Flavio Poletti", - "y" : 2 - }, - { - "y" : 1, - "name" : "Jan Krnavek", - "drilldown" : "Jan Krnavek" - }, - { - "y" : 2, - "drilldown" : "Jorg Sommrey", - "name" : "Jorg Sommrey" - }, - { - "y" : 5, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Lubos Kolouch", - "name" : "Lubos Kolouch", - "y" : 2 - }, - { - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson", - "y" : 2 - }, - { - "y" : 2, - "name" : "Markus Holzer", - "drilldown" : "Markus Holzer" - }, - { - "y" : 4, - "drilldown" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" - }, - { - "drilldown" : "Myoungjin Jeon", - "name" : "Myoungjin Jeon", - "y" : 4 - }, - { - "y" : 2, - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke" - }, - { - "name" : "Nuno Vieira", - "drilldown" : "Nuno Vieira", - "y" : 2 - }, - { - "y" : 2, - "name" : "P6steve", - "drilldown" : "P6steve" - }, - { - "y" : 2, - "drilldown" : "Pete Houston", - "name" : "Pete Houston" - }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 5 - }, - { - "y" : 3, - "name" : "Shahed Nooshmand", - "drilldown" : "Shahed Nooshmand" - }, - { - "drilldown" : "Simon Green", - "name" : "Simon Green", - "y" : 3 - }, - { - "y" : 2, - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" - }, - { - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 2 - }, - { - "drilldown" : "Walt Mankowski", - "name" : "Walt Mankowski", - "y" : 3 - }, - { - "y" : 1, - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc" - } - ], - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 077" - } - ], - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "subtitle" : { - "text" : "[Champions: 30] Last updated at 2020-09-13 12:17:40 GMT" - }, - "xAxis" : { - "type" : "category" - }, "drilldown" : { "series" : [ { "name" : "Alexander Pankoff", - "id" : "Alexander Pankoff", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Alexander Pankoff" }, { - "name" : "Andinus", - "id" : "Andinus", "data" : [ [ "Perl", @@ -209,9 +21,12 @@ "Blog", 1 ] - ] + ], + "name" : "Andinus", + "id" : "Andinus" }, { + "name" : "Andrew Shitov", "data" : [ [ "Perl", @@ -226,11 +41,10 @@ 2 ] ], - "id" : "Andrew Shitov", - "name" : "Andrew Shitov" + "id" : "Andrew Shitov" }, { - "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Raku", @@ -241,9 +55,11 @@ 1 ] ], - "name" : "Arne Sommer" + "id" : "Arne Sommer" }, { + "id" : "Athanasius", + "name" : "Athanasius", "data" : [ [ "Perl", @@ -253,19 +69,31 @@ "Raku", 2 ] - ], - "id" : "Athanasius", - "name" : "Athanasius" + ] }, { + "id" : "Bob Lied", + "name" : "Bob Lied", "data" : [ [ "Perl", 2 ] + ] + }, + { + "name" : "Cheok-Yin Fung", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] ], - "id" : "Bob Lied", - "name" : "Bob Lied" + "id" : "Cheok-Yin Fung" }, { "data" : [ @@ -274,70 +102,72 @@ 1 ] ], - "id" : "Colin Crain", - "name" : "Colin Crain" + "name" : "Colin Crain", + "id" : "Colin Crain" }, { - "id" : "Dave Jacoby", "data" : [ [ "Perl", 2 ] ], - "name" : "Dave Jacoby" + "name" : "Dave Jacoby", + "id" : "Dave Jacoby" }, { - "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] ], + "name" : "E. Choroba", "id" : "E. Choroba" }, { "id" : "Feng Chang", + "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] - ], - "name" : "Feng Chang" + ] }, { + "id" : "Flavio Poletti", "data" : [ [ "Perl", 2 ] ], - "id" : "Flavio Poletti", "name" : "Flavio Poletti" }, { + "id" : "Jan Krnavek", + "name" : "Jan Krnavek", "data" : [ [ "Raku", 1 ] - ], - "id" : "Jan Krnavek", - "name" : "Jan Krnavek" + ] }, { "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ], - "name" : "Jorg Sommrey" + ] }, { + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -351,43 +181,41 @@ "Blog", 1 ] - ], - "id" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" + ] }, { + "id" : "Lubos Kolouch", "name" : "Lubos Kolouch", "data" : [ [ "Perl", 2 ] - ], - "id" : "Lubos Kolouch" + ] }, { - "name" : "Mark Anderson", "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Mark Anderson" }, { - "name" : "Markus Holzer", - "id" : "Markus Holzer", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Markus Holzer", + "id" : "Markus Holzer" }, { - "name" : "Mohammad S Anwar", "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", "data" : [ [ "Perl", @@ -415,47 +243,45 @@ }, { "id" : "Niels van Dijke", + "name" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ], - "name" : "Niels van Dijke" + ] }, { - "name" : "Nuno Vieira", + "id" : "Nuno Vieira", "data" : [ [ "Perl", 2 ] ], - "id" : "Nuno Vieira" + "name" : "Nuno Vieira" }, { - "id" : "P6steve", "data" : [ [ "Raku", 2 ] ], - "name" : "P6steve" + "name" : "P6steve", + "id" : "P6steve" }, { - "name" : "Pete Houston", - "id" : "Pete Houston", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Pete Houston", + "id" : "Pete Houston" }, { - "name" : "Roger Bell_West", - "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -469,11 +295,12 @@ "Blog", 1 ] - ] + ], + "name" : "Roger Bell_West", + "id" : "Roger Bell_West" }, { "name" : "Shahed Nooshmand", - "id" : "Shahed Nooshmand", "data" : [ [ "Raku", @@ -483,11 +310,11 @@ "Blog", 1 ] - ] + ], + "id" : "Shahed Nooshmand" }, { "name" : "Simon Green", - "id" : "Simon Green", "data" : [ [ "Perl", @@ -497,20 +324,20 @@ "Blog", 1 ] - ] + ], + "id" : "Simon Green" }, { - "id" : "Simon Proctor", "data" : [ [ "Raku", 2 ] ], - "name" : "Simon Proctor" + "name" : "Simon Proctor", + "id" : "Simon Proctor" }, { - "name" : "Ulrich Rieke", "id" : "Ulrich Rieke", "data" : [ [ @@ -521,9 +348,11 @@ "Raku", 1 ] - ] + ], + "name" : "Ulrich Rieke" }, { + "name" : "Walt Mankowski", "data" : [ [ "Perl", @@ -534,25 +363,215 @@ 1 ] ], - "id" : "Walt Mankowski", - "name" : "Walt Mankowski" + "id" : "Walt Mankowski" }, { + "name" : "Wanderdoc", "data" : [ [ "Perl", 1 ] ], - "id" : "Wanderdoc", - "name" : "Wanderdoc" + "id" : "Wanderdoc" } ] }, - "chart" : { - "type" : "column" + "series" : [ + { + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 077", + "data" : [ + { + "drilldown" : "Alexander Pankoff", + "y" : 2, + "name" : "Alexander Pankoff" + }, + { + "name" : "Andinus", + "drilldown" : "Andinus", + "y" : 2 + }, + { + "name" : "Andrew Shitov", + "y" : 5, + "drilldown" : "Andrew Shitov" + }, + { + "drilldown" : "Arne Sommer", + "y" : 3, + "name" : "Arne Sommer" + }, + { + "name" : "Athanasius", + "y" : 4, + "drilldown" : "Athanasius" + }, + { + "name" : "Bob Lied", + "drilldown" : "Bob Lied", + "y" : 2 + }, + { + "drilldown" : "Cheok-Yin Fung", + "y" : 3, + "name" : "Cheok-Yin Fung" + }, + { + "y" : 1, + "drilldown" : "Colin Crain", + "name" : "Colin Crain" + }, + { + "y" : 2, + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" + }, + { + "name" : "E. Choroba", + "y" : 2, + "drilldown" : "E. Choroba" + }, + { + "name" : "Feng Chang", + "drilldown" : "Feng Chang", + "y" : 2 + }, + { + "name" : "Flavio Poletti", + "y" : 2, + "drilldown" : "Flavio Poletti" + }, + { + "y" : 1, + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "y" : 2, + "drilldown" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "name" : "Laurent Rosenfeld", + "y" : 5, + "drilldown" : "Laurent Rosenfeld" + }, + { + "name" : "Lubos Kolouch", + "y" : 2, + "drilldown" : "Lubos Kolouch" + }, + { + "drilldown" : "Mark Anderson", + "y" : 2, + "name" : "Mark Anderson" + }, + { + "name" : "Markus Holzer", + "y" : 2, + "drilldown" : "Markus Holzer" + }, + { + "drilldown" : "Mohammad S Anwar", + "y" : 4, + "name" : "Mohammad S Anwar" + }, + { + "name" : "Myoungjin Jeon", + "drilldown" : "Myoungjin Jeon", + "y" : 4 + }, + { + "y" : 2, + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "name" : "Nuno Vieira", + "drilldown" : "Nuno Vieira", + "y" : 2 + }, + { + "name" : "P6steve", + "y" : 2, + "drilldown" : "P6steve" + }, + { + "drilldown" : "Pete Houston", + "y" : 2, + "name" : "Pete Houston" + }, + { + "name" : "Roger Bell_West", + "y" : 5, + "drilldown" : "Roger Bell_West" + }, + { + "y" : 3, + "drilldown" : "Shahed Nooshmand", + "name" : "Shahed Nooshmand" + }, + { + "y" : 3, + "drilldown" : "Simon Green", + "name" : "Simon Green" + }, + { + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "name" : "Walt Mankowski", + "y" : 3, + "drilldown" : "Walt Mankowski" + }, + { + "name" : "Wanderdoc", + "drilldown" : "Wanderdoc", + "y" : 1 + } + ] + } + ], + "subtitle" : { + "text" : "[Champions: 31] Last updated at 2020-09-13 18:11:37 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "tooltip" : { + "pointFormat" : "{point.name}: {point.y:f}
", + "headerFormat" : "{series.name}
", + "followPointer" : 1 }, "title" : { "text" : "Perl Weekly Challenge - 077" + }, + "xAxis" : { + "type" : "category" + }, + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index b562cd1d50..a23130fa7c 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,6 +1,6 @@ { - "subtitle" : { - "text" : "Last updated at 2020-09-13 12:17:40 GMT" + "tooltip" : { + "pointFormat" : "{point.y:.0f}" }, "yAxis" : { "min" : 0, @@ -8,12 +8,12 @@ "text" : null } }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, "chart" : { "type" : "column" }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, "xAxis" : { "type" : "category", "labels" : { @@ -23,22 +23,17 @@ } } }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" - }, - "legend" : { - "enabled" : "false" - }, "series" : [ { + "name" : "Contributions", "data" : [ [ "Blog", - 962 + 963 ], [ "Perl", - 3243 + 3245 ], [ "Raku", @@ -46,18 +41,23 @@ ] ], "dataLabels" : { - "format" : "{point.y:.0f}", - "align" : "right", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, "color" : "#FFFFFF", - "y" : 10, + "align" : "right", + "format" : "{point.y:.0f}", "enabled" : "true", - "rotation" : -90, - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "name" : "Contributions" + "y" : 10, + "rotation" : -90 + } } - ] + ], + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Last updated at 2020-09-13 18:11:37 GMT" + } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 0c1d053e7b..2e9bf1d217 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -2,1416 +2,43 @@ "chart" : { "type" : "column" }, - "drilldown" : { - "series" : [ - { - "data" : [ - [ - "Perl", - 86 - ], - [ - "Raku", - 45 - ], - [ - "Blog", - 11 - ] - ], - "id" : "001", - "name" : "001" - }, - { - "id" : "002", - "data" : [ - [ - "Perl", - 67 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 10 - ] - ], - "name" : "002" - }, - { - "name" : "003", - "data" : [ - [ - "Perl", - 34 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 9 - ] - ], - "id" : "003" - }, - { - "name" : "004", - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ], - "id" : "004" - }, - { - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 12 - ] - ], - "id" : "005", - "name" : "005" - }, - { - "name" : "006", - "data" : [ - [ - "Perl", - 29 - ], - [ - "Raku", - 16 - ], - [ - "Blog", - 7 - ] - ], - "id" : "006" - }, - { - "name" : "007", - "data" : [ - [ - "Perl", - 28 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 10 - ] - ], - "id" : "007" - }, - { - "name" : "008", - "id" : "008", - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 13 - ] - ], - "id" : "009", - "name" : "009" - }, - { - "name" : "010", - "id" : "010", - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 17 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "name" : "011", - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 10 - ] - ], - "id" : "011" - }, - { - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 11 - ] - ], - "id" : "012", - "name" : "012" - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 13 - ] - ], - "id" : "013", - "name" : "013" - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 15 - ] - ], - "id" : "014", - "name" : "014" + "xAxis" : { + "type" : "category" + }, + "title" : { + "text" : "Perl Weekly Challenge Language" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 15 - ] - ], - "id" : "015", - "name" : "015" - }, - { - "name" : "016", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 12 - ] - ], - "id" : "016" - }, - { - "id" : "017", - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 12 - ] - ], - "name" : "017" - }, - { - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 14 - ] - ], - "id" : "018", - "name" : "018" - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 13 - ] - ], - "id" : "019", - "name" : "019" - }, - { - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 13 - ] - ], - "id" : "020", - "name" : "020" - }, - { - "id" : "021", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 10 - ] - ], - "name" : "021" - }, - { - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 10 - ] - ], - "id" : "022", - "name" : "022" - }, - { - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 12 - ] - ], - "id" : "023", - "name" : "023" - }, - { - "id" : "024", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 11 - ] - ], - "name" : "024" - }, - { - "id" : "025", - "data" : [ - [ - "Perl", - 26 - ], - [ - "Raku", - 17 - ], - [ - "Blog", - 12 - ] - ], - "name" : "025" - }, - { - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 10 - ] - ], - "id" : "026", - "name" : "026" - }, - { - "name" : "027", - "data" : [ - [ - "Perl", - 29 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 9 - ] - ], - "id" : "027" - }, - { - "name" : "028", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 9 - ] - ], - "id" : "028" - }, - { - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 12 - ] - ], - "id" : "029", - "name" : "029" - }, - { - "id" : "030", - "data" : [ - [ - "Perl", - 74 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ], - "name" : "030" - }, - { - "name" : "031", - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 9 - ] - ], - "id" : "031" - }, - { - "id" : "032", - "data" : [ - [ - "Perl", - 57 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 10 - ] - ], - "name" : "032" - }, - { - "id" : "033", - "data" : [ - [ - "Perl", - 62 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 10 - ] - ], - "name" : "033" - }, - { - "name" : "034", - "data" : [ - [ - "Perl", - 30 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 11 - ] - ], - "id" : "034" - }, - { - "name" : "035", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 9 - ] - ], - "id" : "035" - }, - { - "id" : "036", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 11 - ] - ], - "name" : "036" - }, - { - "name" : "037", - "id" : "037", - "data" : [ - [ - "Perl", - 34 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "name" : "038", - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 12 - ] - ], - "id" : "038" - }, - { - "name" : "039", - "id" : "039", - "data" : [ - [ - "Perl", - 29 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "name" : "040", - "id" : "040", - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "id" : "041", - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 9 - ] - ], - "name" : "041" - }, - { - "name" : "042", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ], - "id" : "042" - }, - { - "name" : "043", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 11 - ] - ], - "id" : "043" - }, - { - "id" : "044", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ], - "name" : "044" - }, - { - "name" : "045", - "id" : "045", - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ], - "id" : "046", - "name" : "046" - }, - { - "id" : "047", - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 10 - ] - ], - "name" : "047" - }, - { - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 12 - ] - ], - "id" : "048", - "name" : "048" - }, - { - "name" : "049", - "id" : "049", - "data" : [ - [ - "Perl", - 48 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 12 - ] - ], - "id" : "050", - "name" : "050" - }, - { - "id" : "051", - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ], - "name" : "051" - }, - { - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 14 - ] - ], - "id" : "052", - "name" : "052" - }, - { - "name" : "053", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 39 - ], - [ - "Blog", - 15 - ] - ], - "id" : "053" - }, - { - "id" : "054", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 18 - ] - ], - "name" : "054" - }, - { - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ], - "id" : "055", - "name" : "055" - }, - { - "id" : "056", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 16 - ] - ], - "name" : "056" - }, - { - "name" : "057", - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 15 - ] - ], - "id" : "057" - }, - { - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 13 - ] - ], - "id" : "058", - "name" : "058" - }, - { - "name" : "059", - "id" : "059", - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "name" : "060", - "id" : "060", - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "name" : "061", - "id" : "061", - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "name" : "062", - "id" : "062", - "data" : [ - [ - "Perl", - 26 - ], - [ - "Raku", - 17 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 13 - ] - ], - "id" : "063", - "name" : "063" - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 16 - ] - ], - "id" : "064", - "name" : "064" - }, - { - "name" : "065", - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 15 - ] - ], - "id" : "065" - }, - { - "name" : "066", - "id" : "066", - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "name" : "067", - "id" : "067", - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 18 - ] - ] - }, - { - "id" : "068", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 13 - ] - ], - "name" : "068" - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 16 - ] - ], - "id" : "069", - "name" : "069" - }, - { - "id" : "070", - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 17 - ] - ], - "name" : "070" - }, - { - "name" : "071", - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 15 - ] - ], - "id" : "071" - }, - { - "id" : "072", - "data" : [ - [ - "Perl", - 51 - ], - [ - "Raku", - 40 - ], -