From 6fd8db0664e939622da59a3aa7aff38d3da39519 Mon Sep 17 00:00:00 2001 From: E7-87-83 Date: Fri, 4 Sep 2020 09:28:22 +0800 Subject: for challenge #076 --- challenge-076/cheok-yin-fung/perl/ch-1.pl | 77 ++++++++++++ challenge-076/cheok-yin-fung/perl/ch-2.pl | 188 ++++++++++++++++++++++++++++++ 2 files changed, 265 insertions(+) create mode 100644 challenge-076/cheok-yin-fung/perl/ch-1.pl create mode 100644 challenge-076/cheok-yin-fung/perl/ch-2.pl diff --git a/challenge-076/cheok-yin-fung/perl/ch-1.pl b/challenge-076/cheok-yin-fung/perl/ch-1.pl new file mode 100644 index 0000000000..51275f8742 --- /dev/null +++ b/challenge-076/cheok-yin-fung/perl/ch-1.pl @@ -0,0 +1,77 @@ +# Perl Weekly Challenge #076 Task 1 Prime Sum +# task statement: +# You are given a number $N. Write a script +# to find the minimum number of prime numbers +# required, whose summation gives you $N. +# Usage: ch-1.pl $N + +# Given the Goldbach's conjecture conjecture is verified +# for n < 4 000 000 000 000 000 000 000 000 +# ( source: mathworld.wolfram.com ) + +use strict; +use warnings; + +sub is_prime { + my $ans = 1; + for my $i (2..int sqrt($_[0])) { + if ($_[0] % $i == 0) {$ans = 0; return 0;} + } + return $ans; +} + +my %oddprime; +my $V; +if ($ARGV[0]) {$V = $ARGV[0];} else {$V = 1024;} + +# small special cases + +if ($V == 1) { + print "0\nas 1 is smaller than the smallest prime.\n"; + exit; +} + +if ($V == 2) { + print "1\nas 2 is the smallest prime.\n"; + exit; +} + +if ($V == 4) { + print "2\nas 2 + 2 = 4.\n"; + exit; +} + +# normal cases +sub setoddprime { + for my $p (3..$V) {$oddprime{$p} = 1 if is_prime($p);} +} + + +if ($V % 2 == 0) { + print "2\n"; + setoddprime; + for (keys %oddprime) { + if ($oddprime{$V-$_}) { + print "as $_", " + ", $V-$_," = $V.\n" ; + } + } +} +else { + setoddprime; + if ($oddprime{$V}) { + print "1\nas $V is a prime.\n"; + } + elsif ($oddprime{$V-2} == 1) { + print "2\nas 2 + " ,$V-2, " = $V.\n" , + } + else { + print "3\n"; + for (keys %oddprime) { + if ($oddprime{$V-3-$_}) { + print "as 3 + $_", " + ", $V-$_-3," = $V.\n"; + last; + } + } + } +} + diff --git a/challenge-076/cheok-yin-fung/perl/ch-2.pl b/challenge-076/cheok-yin-fung/perl/ch-2.pl new file mode 100644 index 0000000000..28c1dc62d9 --- /dev/null +++ b/challenge-076/cheok-yin-fung/perl/ch-2.pl @@ -0,0 +1,188 @@ +# Perl Weekly Challenge #076 Task 2 +# Word Search +# task statement: +# Write a script that takes two file names. The first file would contain word search grid as shown below. The second file contains list of words, one word per line. You could even use local dictionary file. +# +# Usage: ch-2.pl gridfile dictfile + +use strict; +use warnings; +use Data::Dumper; + +my @matrix; +my @dictwords; +my $gridfile; +my $dictfile; + +if ($ARGV[1]) { + $gridfile = $ARGV[0]; + $dictfile = $ARGV[1]; +} +else { + $gridfile = "pwc076grid"; + $dictfile = "1000engwords.txt"; +} + +open GRID, $gridfile or die "no such text file for the grid: $gridfile"; +open DICT, $dictfile or die "no such text file for the dictionary: $dictfile"; + +#read words from dictionary file +foreach () { + my @temp; + if ($_ =~ /^[a-z]+$/) { + s/\s/\r/g; + s/\s//g; + push @temp, $_ ; + } + for my $line (@temp) { + push @dictwords, $line; + } +} + +@dictwords = sort {$a cmp $b} @dictwords; + +# read the grid from grid file +my $k = 0; +for () { + chomp; + if ($_ ne "") { + @{$matrix[$k]} = split " ", $_; + $k++; + } +} + +my $xlen = scalar @{$matrix[0]}; +my $ylen = scalar @matrix; + +# some subroutines for manipulating the lines on the grid +# ============== + +sub joinline { + my @temp = @_; + @temp = grep {defined($_)} @temp; + # without the `grep {defined($_)}`, the program crashes + # while the input grid is a vertically longer rectangle. + # I haven't figured out why. Aug 3rd 2020 + return lc(join "", @temp); +} + +sub reversestring { + return join "", reverse (split //, $_[0]); +} + + +# horizontal and vertical lines +# ============= + +my @rowline, my @colline, my @urighttolleft; +my @diagonal; + +for my $i (0..$ylen-1) { + $rowline[$i*2] = joinline @{$matrix[$i]}; + $rowline[$i*2+1] = joinline reverse @{$matrix[$i]}; +} + +for my $j (0..$xlen-1) { + $colline[$j*2] = joinline( map {${$matrix[$_]}[$j]} (0..$ylen-1) ); + $colline[$j*2+1] = reversestring $colline[$j*2]; +} +# =========================== + + +# diagonal +# ============================== +sub find_diagonal { + my @mat = @{$_[0]}; + my @ulefttolright; + my @extra_dia; + my $xlen_t = scalar @{$mat[0]}; + my $ylen_t = scalar @mat; + $ulefttolright[0] = joinline map {${$mat[$_]}[$_]} (0..$ylen_t-1); + $ulefttolright[1] = reversestring $ulefttolright[0]; + + if ($xlen_t >= $ylen_t) { + for my $c (0..$xlen_t-$ylen_t) { + $ulefttolright[$c*2] = joinline + map {${$mat[$_]}[$c+$_]} (0..$ylen_t-1) ; + $ulefttolright[$c*2+1] = reversestring $ulefttolright[$c*2]; + } + + for my $c (0..$ylen_t-2) { + $extra_dia[$c*4] = joinline + map {${$mat[$_]}[$xlen_t-$ylen_t+$c+$_]} (0..$ylen_t-$c-1) ; + $extra_dia[$c*4+1] = reversestring $extra_dia[$c*4]; + $extra_dia[$c*4+2] = joinline + map {${$mat[$c+$_]}[$_]} (0..$ylen_t-$c-1) ; + $extra_dia[$c*4+3] = reversestring $extra_dia[$c*4+2]; + } + } + else { + for my $c (0..$ylen_t-$xlen_t) { + $ulefttolright[$c*2] = joinline + map {${$mat[$_+$c]}[$_]} (0..$xlen_t-1) ; + $ulefttolright[$c*2+1] = reversestring $ulefttolright[$c*2]; + } + for my $c (0..$xlen_t-2) { + $extra_dia[$c*4] = joinline + map {${$mat[$ylen_t-$xlen_t+$c+$_]}[$_]} (0..$xlen_t-$c-1) ; + $extra_dia[$c*4+1] = reversestring $extra_dia[$c*4]; + $extra_dia[$c*4+2] = joinline + map {${$mat[$_]}[$c+$_]} (0..$xlen_t-$c-1) ; + $extra_dia[$c*4+3] = reversestring $extra_dia[$c*4+2]; + } + } + return (@ulefttolright, @extra_dia); +} +# ============================= + + +# antidiagonal +# ============================== + +sub vertical_reflection { + my @mat = @{$_[0]}; + my @newmat; + my $xlen_t = scalar @{$mat[0]}; + my $ylen_t = scalar @mat; + for my $i (0..$xlen_t-1) { + @{$newmat[$i]} = (); + for my $j (0..$ylen_t-1) { + ${$newmat[$i]}[$j] = ${$mat[$i]}[$ylen_t-1-$j]; + } + } + return @newmat; +} + + +@diagonal = find_diagonal(\@matrix); +my @newmatrix = vertical_reflection(\@matrix) ; +my @antidiagonal = find_diagonal( \@newmatrix); +# =========================== + + + +# main dish: + +my %unique; + +for my $word (@dictwords) { + for (@rowline,@colline,@diagonal,@antidiagonal) { + if (not($unique{$word}) && defined($_) && $_ =~ /$word/ ) { + print $word, " "; + $unique{$word} = 1; + } + } +} +print "\n"; + + +# grid: as given in task statement +# words list: +# https://www.oxfordlearnersdictionaries.com/wordlists/oxford3000-5000 +# words with length more than or equal to 5 in the grid: +# align broad constitution depart enter midst social virus +# +# Running time +# real 0m0.314s +# user 0m0.302s +# sys 0m0.012s -- cgit From b3e1048f409a0e31e6f8b9ca15de21c12c42a33e Mon Sep 17 00:00:00 2001 From: E7-87-83 Date: Sat, 5 Sep 2020 13:02:32 +0800 Subject: improvement --- challenge-076/cheok-yin-fung/perl/ch-1.pl | 15 +++-- challenge-076/cheok-yin-fung/perl/ch-2.pl | 105 +++++++++++++++--------------- 2 files changed, 63 insertions(+), 57 deletions(-) diff --git a/challenge-076/cheok-yin-fung/perl/ch-1.pl b/challenge-076/cheok-yin-fung/perl/ch-1.pl index 51275f8742..c790d2c0e5 100644 --- a/challenge-076/cheok-yin-fung/perl/ch-1.pl +++ b/challenge-076/cheok-yin-fung/perl/ch-1.pl @@ -6,7 +6,7 @@ # Usage: ch-1.pl $N # Given the Goldbach's conjecture conjecture is verified -# for n < 4 000 000 000 000 000 000 000 000 +# for n < 4 000 000 000 000 000 000 # ( source: mathworld.wolfram.com ) use strict; @@ -37,7 +37,7 @@ if ($V == 2) { } if ($V == 4) { - print "2\nas 2 + 2 = 4.\n"; + print "2\nas 2 + 2 = 4 and 4 is not a prime.\n"; exit; } @@ -53,6 +53,7 @@ if ($V % 2 == 0) { for (keys %oddprime) { if ($oddprime{$V-$_}) { print "as $_", " + ", $V-$_," = $V.\n" ; + last; } } } @@ -61,14 +62,18 @@ else { if ($oddprime{$V}) { print "1\nas $V is a prime.\n"; } - elsif ($oddprime{$V-2} == 1) { - print "2\nas 2 + " ,$V-2, " = $V.\n" , + elsif ($oddprime{$V-2}) { + print "2\nas 2 + " ,$V-2, " = $V\nand $V is not a prime.\n" , } else { print "3\n"; for (keys %oddprime) { if ($oddprime{$V-3-$_}) { - print "as 3 + $_", " + ", $V-$_-3," = $V.\n"; + print "3 + $_", " + ", $V-$_-3," = $V .\n"; + print "The answer can't be 1 or 2 because", + " neither ", $V-2 ," nor $V is a prime; and\n", + " there are no even primes except 2\n", + " (two odd primes sum to an even number).\n"; last; } } diff --git a/challenge-076/cheok-yin-fung/perl/ch-2.pl b/challenge-076/cheok-yin-fung/perl/ch-2.pl index 28c1dc62d9..1642231842 100644 --- a/challenge-076/cheok-yin-fung/perl/ch-2.pl +++ b/challenge-076/cheok-yin-fung/perl/ch-2.pl @@ -1,8 +1,10 @@ -# Perl Weekly Challenge #076 Task 2 -# Word Search -# task statement: -# Write a script that takes two file names. The first file would contain word search grid as shown below. The second file contains list of words, one word per line. You could even use local dictionary file. -# +# Perl Weekly Challenge #076 Task 2 Word Search +# task statements: +# Write a script that takes two file names. +# The first file would contain word search grid +# as shown [below]. The second file contains list of words, +# one word per line. You could even use +# local dictionary file. # Usage: ch-2.pl gridfile dictfile use strict; @@ -58,12 +60,7 @@ my $ylen = scalar @matrix; # ============== sub joinline { - my @temp = @_; - @temp = grep {defined($_)} @temp; - # without the `grep {defined($_)}`, the program crashes - # while the input grid is a vertically longer rectangle. - # I haven't figured out why. Aug 3rd 2020 - return lc(join "", @temp); + return lc(join "", @_); } sub reversestring { @@ -93,43 +90,45 @@ for my $j (0..$xlen-1) { # ============================== sub find_diagonal { my @mat = @{$_[0]}; - my @ulefttolright; - my @extra_dia; - my $xlen_t = scalar @{$mat[0]}; - my $ylen_t = scalar @mat; - $ulefttolright[0] = joinline map {${$mat[$_]}[$_]} (0..$ylen_t-1); - $ulefttolright[1] = reversestring $ulefttolright[0]; - - if ($xlen_t >= $ylen_t) { - for my $c (0..$xlen_t-$ylen_t) { - $ulefttolright[$c*2] = joinline - map {${$mat[$_]}[$c+$_]} (0..$ylen_t-1) ; - $ulefttolright[$c*2+1] = reversestring $ulefttolright[$c*2]; + my @ulefttolright = (); + my @extra_dia = (); + my $t_xlen = scalar @{$mat[0]}; + my $t_ylen = scalar @mat; + my $t_limit = ($t_xlen > $t_ylen) ? $t_ylen : $t_xlen; + my $t_diff = ($t_xlen > $t_ylen) ? $t_xlen - $t_ylen : $t_ylen - $t_xlen; + + if ($t_xlen >= $t_ylen) { + for my $c (0..$t_diff) { + $ulefttolright[$c*2] = joinline + map {${$mat[$_]}[$c+$_]} (0..$t_ylen-1) ; + $ulefttolright[$c*2+1] = reversestring $ulefttolright[$c*2]; } - for my $c (0..$ylen_t-2) { - $extra_dia[$c*4] = joinline - map {${$mat[$_]}[$xlen_t-$ylen_t+$c+$_]} (0..$ylen_t-$c-1) ; - $extra_dia[$c*4+1] = reversestring $extra_dia[$c*4]; - $extra_dia[$c*4+2] = joinline - map {${$mat[$c+$_]}[$_]} (0..$ylen_t-$c-1) ; - $extra_dia[$c*4+3] = reversestring $extra_dia[$c*4+2]; + for my $d (0..$t_limit-2) { + $extra_dia[$d*4] = joinline + map {${$mat[$_]}[$t_diff+$d+1+$_]} (0..$t_limit-$d-2) ; + $extra_dia[$d*4+1] = reversestring $extra_dia[$d*4]; + $extra_dia[$d*4+2] = joinline + map {${$mat[$d+1+$_]}[$_]} (0..$t_limit-$d-2) ; + $extra_dia[$d*4+3] = reversestring $extra_dia[$d*4+2]; } } else { - for my $c (0..$ylen_t-$xlen_t) { + for my $c (0..$t_diff) { $ulefttolright[$c*2] = joinline - map {${$mat[$_+$c]}[$_]} (0..$xlen_t-1) ; + map {${$mat[$_+$c]}[$_]} (0..$t_xlen-1) ; $ulefttolright[$c*2+1] = reversestring $ulefttolright[$c*2]; } - for my $c (0..$xlen_t-2) { - $extra_dia[$c*4] = joinline - map {${$mat[$ylen_t-$xlen_t+$c+$_]}[$_]} (0..$xlen_t-$c-1) ; - $extra_dia[$c*4+1] = reversestring $extra_dia[$c*4]; - $extra_dia[$c*4+2] = joinline - map {${$mat[$_]}[$c+$_]} (0..$xlen_t-$c-1) ; - $extra_dia[$c*4+3] = reversestring $extra_dia[$c*4+2]; + for my $d (0..$t_limit-2) { + $extra_dia[$d*4] = joinline + map {${$mat[$t_diff+$d+1+$_]}[$_]} (0..$t_limit-$d-2) ; + $extra_dia[$d*4+1] = reversestring $extra_dia[$d*4]; + $extra_dia[$d*4+2] = joinline + map {${$mat[$_]}[$d+1+$_]} (0..$t_limit-$d-2) ; + $extra_dia[$d*4+3] = reversestring $extra_dia[$d*4+2]; } + + } return (@ulefttolright, @extra_dia); } @@ -142,12 +141,12 @@ sub find_diagonal { sub vertical_reflection { my @mat = @{$_[0]}; my @newmat; - my $xlen_t = scalar @{$mat[0]}; - my $ylen_t = scalar @mat; - for my $i (0..$xlen_t-1) { + my $t_xlen = scalar @{$mat[0]}; + my $t_ylen = scalar @mat; + for my $i (0..$t_ylen-1) { @{$newmat[$i]} = (); - for my $j (0..$ylen_t-1) { - ${$newmat[$i]}[$j] = ${$mat[$i]}[$ylen_t-1-$j]; + for my $j (0..$t_xlen-1) { + ${$newmat[$i]}[$j] = ${$mat[$i]}[-1-$j]; } } return @newmat; @@ -160,29 +159,31 @@ my @antidiagonal = find_diagonal( \@newmatrix); # =========================== - # main dish: my %unique; for my $word (@dictwords) { - for (@rowline,@colline,@diagonal,@antidiagonal) { - if (not($unique{$word}) && defined($_) && $_ =~ /$word/ ) { + for (@rowline,@colline,@diagonal,@antidiagonal) { + if (defined $_) { + if ($_ =~ /$word/ && not($unique{$word}) ) { print $word, " "; $unique{$word} = 1; } + } } } -print "\n"; +print "\n"; # grid: as given in task statement -# words list: +# word list: # https://www.oxfordlearnersdictionaries.com/wordlists/oxford3000-5000 # words with length more than or equal to 5 in the grid: # align broad constitution depart enter midst social virus # # Running time -# real 0m0.314s -# user 0m0.302s -# sys 0m0.012s +# real 0m0.254s +# user 0m0.249s +# sys 0m0.004s + -- cgit From d8619fdca45cda33e7ce809f660b1c108c0897bd Mon Sep 17 00:00:00 2001 From: Lubos Kolouch Date: Sat, 5 Sep 2020 11:49:26 +0200 Subject: Task 2 Challenge 076 LK --- challenge-076/lubos-kolouch/perl/ch-2.pl | 121 +++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 challenge-076/lubos-kolouch/perl/ch-2.pl diff --git a/challenge-076/lubos-kolouch/perl/ch-2.pl b/challenge-076/lubos-kolouch/perl/ch-2.pl new file mode 100644 index 0000000000..e0cc7f966d --- /dev/null +++ b/challenge-076/lubos-kolouch/perl/ch-2.pl @@ -0,0 +1,121 @@ +#!/usr/bin/perl +#=============================================================================== +# +# FILE: ch-2.pl +# +# USAGE: ./ch-2.pl +# +# DESCRIPTION: https://perlweeklychallenge.org/blog/perl-weekly-challenge-076/ +# +# Task 2 - Word Search +# +# AUTHOR: Lubos Kolouch +#=============================================================================== + +use strict; +use warnings; +use File::Slurp; +use feature qw/say/; + + +sub get_words { + my ($grid, $words, $min_count) = @_; + + + # load the grid into 2D array + my @real_grid; + + my $x_size = scalar @$grid - 1; + my $y_size; + + for my $i (0..scalar @$grid -1) { + my $pos = 0; + for (split / /, $grid->[$i]) { + $real_grid[$i][$pos] = $_; + $pos++; + } + $y_size = $pos; + } + + $y_size--; + + # let's construct a big string of all possible combinations + + my $big_string; + # add all rows + for my $x (0..$x_size) { + for my $y (0..$y_size) { + $big_string .= $real_grid[$x][$y]; + } + # at the end of row we need a break + $big_string .= '_'; + } + + # add all columns + for my $y (0..$y_size) { + for my $x (0..$x_size) { + $big_string .= $real_grid[$x][$y]; + } + $big_string .= '_'; + } + + # add diagonal 1 + for my $x (0..$x_size) { + for my $y (0..$y_size) { + last if $x + $y > $x_size; + $big_string .= $real_grid[$x+$y][$y]; + } + $big_string .= '_'; + } + + # add diagonal 2 + for my $y (0..$y_size) { + + for my $x (0..$x_size) { + last if $x + $y > $y_size; + $big_string .= $real_grid[$x][$y+$x]; + } + $big_string .= '_'; + } + + # add diagonal 3 + for my $x (0..$x_size) { + for my $y (0..$y_size) { + last if $x + $y > $x_size; + $big_string .= $real_grid[$x+$y][$y_size - $y]; + } + $big_string .= '_'; + } + + # add diagonal 4 + for my $y (0..$y_size) { + for my $x (0..$x_size) { + last if $x + $y > $y_size; + $big_string .= $real_grid[$x][$y_size - $y - $x]; + } + $big_string .= '_'; + } + + $big_string .= reverse $big_string; + + + my $count = 0; + + for (@$words) { + next unless length($_) >= $min_count; + $count++ if index($big_string, uc($_)) != -1; + } + + return $count; +} + +my ($grid_file, $words_file) = @ARGV; + +my $grid_ref = read_file($grid_file, array_ref => 1, chomp => 1); +my $words_ref = read_file($words_file, array_ref => 1, chomp => 1); + +use Test::More; + +is (get_words(['AA','BB'],['AA', 'BB', 'CC'],2), 2); + +done_testing; -- cgit From b32fa523cf029e606d9228532aa559fe7ff5d9f9 Mon Sep 17 00:00:00 2001 From: Lubos Kolouch Date: Sat, 5 Sep 2020 11:49:26 +0200 Subject: Task 2 Challenge 076 LK --- challenge-076/lubos-kolouch/perl/ch-2.pl | 121 +++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 challenge-076/lubos-kolouch/perl/ch-2.pl diff --git a/challenge-076/lubos-kolouch/perl/ch-2.pl b/challenge-076/lubos-kolouch/perl/ch-2.pl new file mode 100644 index 0000000000..e0cc7f966d --- /dev/null +++ b/challenge-076/lubos-kolouch/perl/ch-2.pl @@ -0,0 +1,121 @@ +#!/usr/bin/perl +#=============================================================================== +# +# FILE: ch-2.pl +# +# USAGE: ./ch-2.pl +# +# DESCRIPTION: https://perlweeklychallenge.org/blog/perl-weekly-challenge-076/ +# +# Task 2 - Word Search +# +# AUTHOR: Lubos Kolouch +#=============================================================================== + +use strict; +use warnings; +use File::Slurp; +use feature qw/say/; + + +sub get_words { + my ($grid, $words, $min_count) = @_; + + + # load the grid into 2D array + my @real_grid; + + my $x_size = scalar @$grid - 1; + my $y_size; + + for my $i (0..scalar @$grid -1) { + my $pos = 0; + for (split / /, $grid->[$i]) { + $real_grid[$i][$pos] = $_; + $pos++; + } + $y_size = $pos; + } + + $y_size--; + + # let's construct a big string of all possible combinations + + my $big_string; + # add all rows + for my $x (0..$x_size) { + for my $y (0..$y_size) { + $big_string .= $real_grid[$x][$y]; + } + # at the end of row we need a break + $big_string .= '_'; + } + + # add all columns + for my $y (0..$y_size) { + for my $x (0..$x_size) { + $big_string .= $real_grid[$x][$y]; + } + $big_string .= '_'; + } + + # add diagonal 1 + for my $x (0..$x_size) { + for my $y (0..$y_size) { + last if $x + $y > $x_size; + $big_string .= $real_grid[$x+$y][$y]; + } + $big_string .= '_'; + } + + # add diagonal 2 + for my $y (0..$y_size) { + + for my $x (0..$x_size) { + last if $x + $y > $y_size; + $big_string .= $real_grid[$x][$y+$x]; + } + $big_string .= '_'; + } + + # add diagonal 3 + for my $x (0..$x_size) { + for my $y (0..$y_size) { + last if $x + $y > $x_size; + $big_string .= $real_grid[$x+$y][$y_size - $y]; + } + $big_string .= '_'; + } + + # add diagonal 4 + for my $y (0..$y_size) { + for my $x (0..$x_size) { + last if $x + $y > $y_size; + $big_string .= $real_grid[$x][$y_size - $y - $x]; + } + $big_string .= '_'; + } + + $big_string .= reverse $big_string; + + + my $count = 0; + + for (@$words) { + next unless length($_) >= $min_count; + $count++ if index($big_string, uc($_)) != -1; + } + + return $count; +} + +my ($grid_file, $words_file) = @ARGV; + +my $grid_ref = read_file($grid_file, array_ref => 1, chomp => 1); +my $words_ref = read_file($words_file, array_ref => 1, chomp => 1); + +use Test::More; + +is (get_words(['AA','BB'],['AA', 'BB', 'CC'],2), 2); + +done_testing; -- cgit From a04802f33a0d6450b8bf8d5fb8868f9c6fc9ba43 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sat, 5 Sep 2020 10:59:53 +0100 Subject: - Added solution by Lubos Kolouch. --- stats/pwc-current.json | 170 ++++---- stats/pwc-language-breakdown-summary.json | 56 +-- stats/pwc-language-breakdown.json | 550 +++++++++++------------ stats/pwc-leaders.json | 696 +++++++++++++++--------------- stats/pwc-summary-1-30.json | 120 +++--- stats/pwc-summary-121-150.json | 44 +- stats/pwc-summary-151-180.json | 56 +-- stats/pwc-summary-181-210.json | 40 +- stats/pwc-summary-31-60.json | 44 +- stats/pwc-summary-61-90.json | 112 ++--- stats/pwc-summary-91-120.json | 110 ++--- stats/pwc-summary.json | 430 +++++++++--------- 12 files changed, 1214 insertions(+), 1214 deletions(-) diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 63c921bef1..daa2aa73ae 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,89 +1,101 @@ { + "title" : { + "text" : "Perl Weekly Challenge - 076" + }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "title" : { - "text" : "Perl Weekly Challenge - 076" + "xAxis" : { + "type" : "category" + }, + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : 0 + }, + "subtitle" : { + "text" : "[Champions: 20] Last updated at 2020-09-05 09:59:18 GMT" }, "series" : [ { "data" : [ { + "name" : "Alexander Pankoff", "drilldown" : "Alexander Pankoff", - "y" : 2, - "name" : "Alexander Pankoff" + "y" : 2 }, { - "drilldown" : "Andinus", "y" : 2, - "name" : "Andinus" + "name" : "Andinus", + "drilldown" : "Andinus" }, { - "drilldown" : "Colin Crain", "y" : 1, - "name" : "Colin Crain" + "name" : "Colin Crain", + "drilldown" : "Colin Crain" }, { - "y" : 5, "drilldown" : "Javier Luque", - "name" : "Javier Luque" + "name" : "Javier Luque", + "y" : 5 }, { - "name" : "Jorg Sommrey", "drilldown" : "Jorg Sommrey", + "name" : "Jorg Sommrey", "y" : 2 }, { - "y" : 1, "drilldown" : "Lubos Kolouch", - "name" : "Lubos Kolouch" + "name" : "Lubos Kolouch", + "y" : 2 }, { - "name" : "Luca Ferrari", "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", "y" : 4 }, { - "name" : "Mark Anderson", "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", "y" : 2 }, { - "drilldown" : "Markus Holzer", "y" : 2, + "drilldown" : "Markus Holzer", "name" : "Markus Holzer" }, { - "drilldown" : "Mohammad S Anwar", "name" : "Mohammad S Anwar", + "drilldown" : "Mohammad S Anwar", "y" : 3 }, { - "y" : 4, "drilldown" : "Myoungjin Jeon", - "name" : "Myoungjin Jeon" + "name" : "Myoungjin Jeon", + "y" : 4 }, { "drilldown" : "Neil Bowers", - "y" : 2, - "name" : "Neil Bowers" + "name" : "Neil Bowers", + "y" : 2 }, { - "y" : 2, + "name" : "Nuno Vieira", "drilldown" : "Nuno Vieira", - "name" : "Nuno Vieira" + "y" : 2 }, { - "drilldown" : "Pete Houston", "name" : "Pete Houston", + "drilldown" : "Pete Houston", "y" : 2 }, { - "y" : 5, "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West" + "name" : "Roger Bell_West", + "y" : 5 }, { "name" : "Simon Green", @@ -91,23 +103,23 @@ "y" : 3 }, { - "drilldown" : "Simon Proctor", "y" : 2, + "drilldown" : "Simon Proctor", "name" : "Simon Proctor" }, { - "drilldown" : "Ulrich Rieke", + "y" : 1, "name" : "Ulrich Rieke", - "y" : 1 + "drilldown" : "Ulrich Rieke" }, { - "name" : "Walt Mankowski", + "y" : 3, "drilldown" : "Walt Mankowski", - "y" : 3 + "name" : "Walt Mankowski" }, { - "drilldown" : "Yet Ebreo", "y" : 1, + "drilldown" : "Yet Ebreo", "name" : "Yet Ebreo" } ], @@ -115,13 +127,14 @@ "colorByPoint" : 1 } ], - "xAxis" : { - "type" : "category" - }, - "tooltip" : { - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
", - "followPointer" : 1 + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } }, "drilldown" : { "series" : [ @@ -156,8 +169,8 @@ 1 ] ], - "name" : "Colin Crain", - "id" : "Colin Crain" + "id" : "Colin Crain", + "name" : "Colin Crain" }, { "name" : "Javier Luque", @@ -178,14 +191,14 @@ ] }, { - "name" : "Jorg Sommrey", - "id" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Jorg Sommrey", + "id" : "Jorg Sommrey" }, { "id" : "Lubos Kolouch", @@ -193,13 +206,11 @@ "data" : [ [ "Perl", - 1 + 2 ] ] }, { - "name" : "Luca Ferrari", - "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -209,17 +220,19 @@ "Blog", 2 ] - ] + ], + "name" : "Luca Ferrari", + "id" : "Luca Ferrari" }, { - "name" : "Mark Anderson", - "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { "data" : [ @@ -246,6 +259,8 @@ ] }, { + "id" : "Myoungjin Jeon", + "name" : "Myoungjin Jeon", "data" : [ [ "Perl", @@ -255,13 +270,9 @@ "Raku", 2 ] - ], - "name" : "Myoungjin Jeon", - "id" : "Myoungjin Jeon" + ] }, { - "name" : "Neil Bowers", - "id" : "Neil Bowers", "data" : [ [ "Perl", @@ -271,17 +282,19 @@ "Blog", 1 ] - ] + ], + "name" : "Neil Bowers", + "id" : "Neil Bowers" }, { + "id" : "Nuno Vieira", + "name" : "Nuno Vieira", "data" : [ [ "Perl", 2 ] - ], - "id" : "Nuno Vieira", - "name" : "Nuno Vieira" + ] }, { "name" : "Pete Houston", @@ -294,8 +307,6 @@ ] }, { - "id" : "Roger Bell_West", - "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -309,7 +320,9 @@ "Blog", 1 ] - ] + ], + "name" : "Roger Bell_West", + "id" : "Roger Bell_West" }, { "name" : "Simon Green", @@ -326,14 +339,14 @@ ] }, { + "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ], - "id" : "Simon Proctor", - "name" : "Simon Proctor" + ] }, { "name" : "Ulrich Rieke", @@ -356,8 +369,8 @@ 1 ] ], - "id" : "Walt Mankowski", - "name" : "Walt Mankowski" + "name" : "Walt Mankowski", + "id" : "Walt Mankowski" }, { "data" : [ @@ -371,22 +384,9 @@ } ] }, - "legend" : { - "enabled" : 0 - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "chart" : { - "type" : "column" - }, - "subtitle" : { - "text" : "[Champions: 20] Last updated at 2020-09-05 01:32:06 GMT" + "tooltip" : { + "pointFormat" : "{point.name}: {point.y:f}
", + "followPointer" : 1, + "headerFormat" : "{series.name}
" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index d718c9a7fd..274bbf1c1f 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,27 +1,17 @@ { - "subtitle" : { - "text" : "Last updated at 2020-09-05 01:32:05 GMT" - }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : "false" - }, "series" : [ { - "name" : "Contributions", "dataLabels" : { - "format" : "{point.y:.0f}", - "y" : 10, - "color" : "#FFFFFF", - "enabled" : "true", "rotation" : -90, + "enabled" : "true", "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, - "align" : "right" + "y" : 10, + "align" : "right", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF" }, "data" : [ [ @@ -30,18 +20,37 @@ ], [ "Perl", - 3178 + 3179 ], [ "Raku", 2066 ] - ] + ], + "name" : "Contributions" } ], + "subtitle" : { + "text" : "Last updated at 2020-09-05 09:59:18 GMT" + }, "tooltip" : { "pointFormat" : "{point.y:.0f}" }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, "xAxis" : { "labels" : { "style" : { @@ -50,14 +59,5 @@ } }, "type" : "category" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 7ffb6858d7..d45c9e132f 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,18 +1,12 @@ { - "chart" : { - "type" : "column" + "xAxis" : { + "type" : "category" }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } + "legend" : { + "enabled" : "false" }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-09-05 01:32:05 GMT" + "chart" : { + "type" : "column" }, "title" : { "text" : "Perl Weekly Challenge Language" @@ -25,6 +19,8 @@ "drilldown" : { "series" : [ { + "id" : "001", + "name" : "001", "data" : [ [ "Perl", @@ -38,11 +34,11 @@ "Blog", 11 ] - ], - "id" : "001", - "name" : "001" + ] }, { + "id" : "002", + "name" : "002", "data" : [ [ "Perl", @@ -56,13 +52,9 @@ "Blog", 10 ] - ], - "name" : "002", - "id" : "002" + ] }, { - "id" : "003", - "name" : "003", "data" : [ [ "Perl", @@ -76,7 +68,9 @@ "Blog", 9 ] - ] + ], + "id" : "003", + "name" : "003" }, { "data" : [ @@ -97,6 +91,8 @@ "id" : "004" }, { + "name" : "005", + "id" : "005", "data" : [ [ "Perl", @@ -110,11 +106,11 @@ "Blog", 12 ] - ], - "id" : "005", - "name" : "005" + ] }, { + "name" : "006", + "id" : "006", "data" : [ [ "Perl", @@ -128,9 +124,7 @@ "Blog", 7 ] - ], - "name" : "006", - "id" : "006" + ] }, { "data" : [ @@ -147,8 +141,8 @@ 10 ] ], - "name" : "007", - "id" : "007" + "id" : "007", + "name" : "007" }, { "name" : "008", @@ -169,8 +163,6 @@ ] }, { - "id" : "009", - "name" : "009", "data" : [ [ "Perl", @@ -184,7 +176,9 @@ "Blog", 13 ] - ] + ], + "id" : "009", + "name" : "009" }, { "data" : [ @@ -223,8 +217,6 @@ ] }, { - "id" : "012", - "name" : "012", "data" : [ [ "Perl", @@ -238,7 +230,9 @@ "Blog", 11 ] - ] + ], + "id" : "012", + "name" : "012" }, { "data" : [ @@ -273,10 +267,12 @@ 15 ] ], - "name" : "014", - "id" : "014" + "id" : "014", + "name" : "014" }, { + "name" : "015", + "id" : "015", "data" : [ [ "Perl", @@ -290,11 +286,11 @@ "Blog", 15 ] - ], - "name" : "015", - "id" : "015" + ] }, { + "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -308,13 +304,9 @@ "Blog", 12 ] - ], - "id" : "016", - "name" : "016" + ] }, { - "name" : "017", - "id" : "017", "data" : [ [ "Perl", @@ -328,11 +320,11 @@ "Blog", 12 ] - ] + ], + "name" : "017", + "id" : "017" }, { - "name" : "018", - "id" : "018", "data" : [ [ "Perl", @@ -346,9 +338,13 @@ "Blog", 14 ] - ] + ], + "name" : "018", + "id" : "018" }, { + "id" : "019", + "name" : "019", "data" : [ [ "Perl", @@ -362,11 +358,11 @@ "Blog", 13 ] - ], - "name" : "019", - "id" : "019" + ] }, { + "name" : "020", + "id" : "020", "data" : [ [ "Perl", @@ -380,13 +376,9 @@ "Blog", 13 ] - ], - "name" : "020", - "id" : "020" + ] }, { - "id" : "021", - "name" : "021", "data" : [ [ "Perl", @@ -400,7 +392,9 @@ "Blog", 10 ] - ] + ], + "id" : "021", + "name" : "021" }, { "id" : "022", @@ -435,8 +429,8 @@ 12 ] ], - "name" : "023", - "id" : "023" + "id" : "023", + "name" : "023" }, { "name" : "024", @@ -457,8 +451,8 @@ ] }, { - "id" : "025", "name" : "025", + "id" : "025", "data" : [ [ "Perl", @@ -493,6 +487,8 @@ "name" : "026" }, { + "name" : "027", + "id" : "027", "data" : [ [ "Perl", @@ -506,11 +502,11 @@ "Blog", 9 ] - ], - "id" : "027", - "name" : "027" + ] }, { + "id" : "028", + "name" : "028", "data" : [ [ "Perl", @@ -524,13 +520,9 @@ "Blog", 9 ] - ], - "id" : "028", - "name" : "028" + ] }, { - "id" : "029", - "name" : "029", "data" : [ [ "Perl", @@ -544,9 +536,13 @@ "Blog", 12 ] - ] + ], + "id" : "029", + "name" : "029" }, { + "name" : "030", + "id" : "030", "data" : [ [ "Perl", @@ -560,9 +556,7 @@ "Blog", 10 ] - ], - "id" : "030", - "name" : "030" + ] }, { "data" : [ @@ -579,8 +573,8 @@ 9 ] ], - "id" : "031", - "name" : "031" + "name" : "031", + "id" : "031" }, { "data" : [ @@ -601,6 +595,8 @@ "name" : "032" }, { + "name" : "033", + "id" : "033", "data" : [ [ "Perl", @@ -614,9 +610,7 @@ "Blog", 10 ] - ], - "id" : "033", - "name" : "033" + ] }, { "data" : [ @@ -633,8 +627,8 @@ 11 ] ], - "name" : "034", - "id" : "034" + "id" : "034", + "name" : "034" }, { "data" : [ @@ -655,8 +649,6 @@ "id" : "035" }, { - "id" : "036", - "name" : "036", "data" : [ [ "Perl", @@ -670,9 +662,13 @@ "Blog", 11 ] - ] + ], + "id" : "036", + "name" : "036" }, { + "name" : "037", + "id" : "037", "data" : [ [ "Perl", @@ -686,11 +682,11 @@ "Blog", 9 ] - ], - "id" : "037", - "name" : "037" + ] }, { + "name" : "038", + "id" : "038", "data" : [ [ "Perl", @@ -704,9 +700,7 @@ "Blog", 12 ] - ], - "id" : "038", - "name" : "038" + ] }, { "name" : "039", @@ -727,6 +721,8 @@ ] }, { + "name" : "040", + "id" : "040", "data" : [ [ "Perl", @@ -740,9 +736,7 @@ "Blog", 10 ] - ], - "name" : "040", - "id" : "040" + ] }, { "data" : [ @@ -763,8 +757,6 @@ "name" : "041" }, { - "name" : "042", - "id" : "042", "data" : [ [ "Perl", @@ -778,7 +770,9 @@ "Blog", 11 ] - ] + ], + "name" : "042", + "id" : "042" }, { "name" : "043", @@ -813,10 +807,12 @@ 11 ] ], - "id" : "044", - "name" : "044" + "name" : "044", + "id" : "044" }, { + "id" : "045", + "name" : "045", "data" : [ [ "Perl", @@ -830,9 +826,7 @@ "Blog", 11 ] - ], - "name" : "045", - "id" : "045" + ] }, { "data" : [ @@ -853,8 +847,6 @@ "id" : "046" }, { - "id" : "047", - "name" : "047", "data" : [ [ "Perl", @@ -868,7 +860,9 @@ "Blog", 10 ] - ] + ], + "name" : "047", + "id" : "047" }, { "data" : [ @@ -885,8 +879,8 @@ 12 ] ], - "name" : "048", - "id" : "048" + "id" : "048", + "name" : "048" }, { "data" : [ @@ -903,8 +897,8 @@ 12 ] ], - "name" : "049", - "id" : "049" + "id" : "049", + "name" : "049" }, { "id" : "050", @@ -939,12 +933,12 @@ 11 ] ], - "name" : "051", - "id" : "051" + "id" : "051", + "name" : "051" }, { - "id" : "052", "name" : "052", + "id" : "052", "data" : [ [ "Perl", @@ -961,6 +955,8 @@ ] }, { + "name" : "053", + "id" : "053", "data" : [ [ "Perl", @@ -974,9 +970,7 @@ "Blog", 15 ] - ], - "id" : "053", - "name" : "053" + ] }, { "id" : "054", @@ -997,8 +991,6 @@ ] }, { - "id" : "055", - "name" : "055", "data" : [ [ "Perl", @@ -1012,11 +1004,13 @@ "Blog", 14 ] - ] + ], + "name" : "055", + "id" : "055" }, { - "id" : "056", "name" : "056", + "id" : "056", "data" : [ [ "Perl", @@ -1033,6 +1027,8 @@ ] }, { + "name" : "057", + "id" : "057", "data" : [ [ "Perl", @@ -1046,9 +1042,7 @@ "Blog", 15 ] - ], - "name" : "057", - "id" : "057" + ] }, { "data" : [ @@ -1087,6 +1081,8 @@ "id" : "059" }, { + "id" : "060", + "name" : "060", "data" : [ [ "Perl", @@ -1100,11 +1096,11 @@ "Blog", 16 ] - ], - "id" : "060", - "name" : "060" + ] }, { + "id" : "061", + "name" : "061", "data" : [ [ "Perl", @@ -1118,13 +1114,9 @@ "Blog", 14 ] - ], - "id" : "061", - "name" : "061" + ] }, { - "id" : "062", - "name" : "062", "data" : [ [ "Perl", @@ -1138,7 +1130,9 @@ "Blog", 11 ] - ] + ], + "id" : "062", + "name" : "062" }, { "data" : [ @@ -1159,8 +1153,6 @@ "name" : "063" }, { - "id" : "064", - "name" : "064", "data" : [ [ "Perl", @@ -1174,11 +1166,11 @@ "Blog", 16 ] - ] + ], + "name" : "064", + "id" : "064" }, { - "id" : "065", - "name" : "065", "data" : [ [ "Perl", @@ -1192,7 +1184,9 @@ "Blog", 15 ] - ] + ], + "id" : "065", + "name" : "065" }, { "id" : "066", @@ -1213,8 +1207,6 @@ ] }, { - "id" : "067", - "name" : "067", "data" : [ [ "Perl", @@ -1228,11 +1220,11 @@ "Blog", 18 ] - ] + ], + "id" : "067", + "name" : "067" }, { - "id" : "068", - "name" : "068", "data" : [ [ "Perl", @@ -1246,7 +1238,9 @@ "Blog", 13 ] - ] + ], + "name" : "068", + "id" : "068" }, { "data" : [ @@ -1263,12 +1257,10 @@ 16 ] ], - "id" : "069", - "name" : "069" + "name" : "069", + "id" : "069" }, { - "id" : "070", - "name" : "070", "data" : [ [ "Perl", @@ -1282,9 +1274,13 @@ "Blog", 17 ] - ] + ], + "name" : "070", + "id" : "070" }, { + "id" : "071", + "name" : "071", "data" : [ [ "Perl", @@ -1298,13 +1294,9 @@ "Blog", 15 ] - ], - "name" : "071", - "id" : "071" + ] }, { - "id" : "072", - "name" : "072", "data" : [ [ "Perl", @@ -1318,11 +1310,11 @@ "Blog", 19 ] - ] + ], + "name" : "072", + "id" : "072" }, { - "name" : "073", - "id" : "073", "data" : [ [ "Perl", @@ -1336,7 +1328,9 @@ "Blog", 17 ] - ] + ], + "id" : "073", + "name" : "073" }, { "data" : [ @@ -1353,12 +1347,12 @@ 20 ] ], - "name" : "074", - "id" : "074" + "id" : "074", + "name" : "074" }, { - "id" : "075", "name" : "075", + "id" : "075", "data" : [ [ "Perl", @@ -1375,12 +1369,12 @@ ] }, { - "name" : "076", "id" : "076", + "name" : "076", "data" : [ [ "Perl", - 25 + 26 ], [ "Raku", @@ -1394,18 +1388,22 @@ } ] }, - "legend" : { - "enabled" : "false" + "tooltip" : { + "headerFormat" : "", + "followPointer" : "true", + "pointFormat" : "Challenge {point.name}: {point.y:f}
" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-09-05 09:59:18 GMT" }, "series" : [ { "colorByPoint" : "true", - "name" : "Perl Weekly Challenge Languages", "data" : [ { + "y" : 142, "name" : "#001", - "drilldown" : "001", - "y" : 142 + "drilldown" : "001" }, { "drilldown" : "002", @@ -1419,12 +1417,12 @@ }, { "drilldown" : "004", - "y" : 91, - "name" : "#004" + "name" : "#004", + "y" : 91 }, { - "name" : "#005", "drilldown" : "005", + "name" : "#005", "y" : 72 }, { @@ -1433,23 +1431,23 @@ "y" : 52 }, { + "name" : "#007", "drilldown" : "007", - "y" : 59, - "name" : "#007" + "y" : 59 }, { - "y" : 72, + "name" : "#008", "drilldown" : "008", - "name" : "#008" + "y" : 72 }, { + "y" : 68, "drilldown" : "009", - "name" : "#009", - "y" : 68 + "name" : "#009" }, { - "name" : "#010", "drilldown" : "010", + "name" : "#010", "y" : 60 }, { @@ -1463,59 +1461,59 @@ "y" : 83 }, { - "drilldown" : "013", "name" : "#013", + "drilldown" : "013", "y" : 76 }, { + "y" : 96, "name" : "#014", - "drilldown" : "014", - "y" : 96 + "drilldown" : "014" }, { - "y" : 93, + "name" : "#015", "drilldown" : "015", - "name" : "#015" + "y" : 93 }, { + "y" : 66, "name" : "#016", - "drilldown" : "016", - "y" : 66 + "drilldown" : "016" }, { + "y" : 79, "name" : "#017", - "drilldown" : "017", - "y" : 79 + "drilldown" : "017" }, { - "name" : "#018", "drilldown" : "018", + "name" : "#018", "y" : 76 }, { "y" : 97, - "drilldown" : "019", - "name" : "#019" + "name" : "#019", + "drilldown" : "019" }, { - "name" : "#020", + "y" : 95, "drilldown" : "020", - "y" : 95 + "name" : "#020" }, { - "name" : "#021", "drilldown" : "021", + "name" : "#021", "y" : 67 }, { - "y" : 63, + "name" : "#022", "drilldown" : "022", - "name" : "#022" + "y" : 63 }, { "drilldown" : "023", - "y" : 91, - "name" : "#023" + "name" : "#023", + "y" : 91 }, { "y" : 70, @@ -1523,9 +1521,9 @@ "name" : "#024" }, { - "y" : 55, + "name" : "#025", "drilldown" : "025", - "name" : "#025" + "y" : 55 }, { "drilldown" : "026", @@ -1533,9 +1531,9 @@ "y" : 70 }, { + "name" : "#027", "drilldown" : "027", - "y" : 58, - "name" : "#027" + "y" : 58 }, { "drilldown" : "028", @@ -1543,9 +1541,9 @@ "y" : 78 }, { + "y" : 77, "drilldown" : "029", - "name" : "#029", - "y" : 77 + "name" : "#029" }, { "name" : "#030", @@ -1558,9 +1556,9 @@ "name" : "#031" }, { + "y" : 92, "drilldown" : "032", - "name" : "#032", - "y" : 92 + "name" : "#032" }, { "name" : "#033", @@ -1568,19 +1566,19 @@ "y" : 108 }, { + "y" : 62, "drilldown" : "034", - "name" : "#034", - "y" : 62 + "name" : "#034" }, { + "y" : 62, "name" : "#035", - "drilldown" : "035", - "y" : 62 + "drilldown" : "035" }, { + "name" : "#036", "drilldown" : "036", - "y" : 66, - "name" : "#036" + "y" : 66 }, { "name" : "#037", @@ -1588,39 +1586,39 @@ "y" : 65 }, { - "drilldown" : "038", + "y" : 65, "name" : "#038", - "y" : 65 + "drilldown" : "038" }, { - "drilldown" : "039", "y" : 60, + "drilldown" : "039", "name" : "#039" }, { "y" : 71, - "drilldown" : "040", - "name" : "#040" + "name" : "#040", + "drilldown" : "040" }, { - "drilldown" : "041", + "y" : 74, "name" : "#041", - "y" : 74 + "drilldown" : "041" }, { - "name" : "#042", "drilldown" : "042", + "name" : "#042", "y" : 88 }, { + "y" : 66, "drilldown" : "043", - "name" : "#043", - "y" : 66 + "name" : "#043" }, { + "y" : 82, "drilldown" : "044", - "name" : "#044", - "y" : 82 + "name" : "#044" }, { "drilldown" : "045", @@ -1628,43 +1626,43 @@ "y" : 94 }, { - "name" : "#046", + "y" : 85, "drilldown" : "046", - "y" : 85 + "name" : "#046" }, { "y" : 82, - "drilldown" : "047", - "name" : "#047" + "name" : "#047", + "drilldown" : "047" }, { - "name" : "#048", "drilldown" : "048", + "name" : "#048", "y" : 106 }, { - "name" : "#049", + "y" : 85, "drilldown" : "049", - "y" : 85 + "name" : "#049" }, { - "name" : "#050", "drilldown" : "050", + "name" : "#050", "y" : 96 }, { - "y" : 87, + "name" : "#051", "drilldown" : "051", - "name" : "#051" + "y" : 87 }, { - "name" : "#052", "drilldown" : "052", + "name" : "#052", "y" : 89 }, { - "name" : "#053", "drilldown" : "053", + "name" : "#053", "y" : 99 }, { @@ -1673,34 +1671,34 @@ "name" : "#054" }, { + "name" : "#055", "drilldown" : "055", - "y" : 86, - "name" : "#055" + "y" : 86 }, { - "y" : 93, + "name" : "#056", "drilldown" : "056", - "name" : "#056" + "y" : 93 }, { "y" : 78, - "drilldown" : "057", - "name" : "#057" + "name" : "#057", + "drilldown" : "057" }, { + "y" : 67, "drilldown" : "058", - "name" : "#058", - "y" : 67 + "name" : "#058" }, { - "drilldown" : "059", "y" : 87, + "drilldown" : "059", "name" : "#059" }, { - "drilldown" : "060", + "y" : 83, "name" : "#060", - "y" : 83 + "drilldown" : "060" }, { "drilldown" : "061", @@ -1708,24 +1706,24 @@ "y" : 79 }, { - "name" : "#062", + "y" : 54, "drilldown" : "062", - "y" : 54 + "name" : "#062" }, { - "y" : 87, + "name" : "#063", "drilldown" : "063", - "name" : "#063" + "y" : 87 }, { - "drilldown" : "064", "name" : "#064", + "drilldown" : "064", "y" : 76 }, { + "y" : 71, "name" : "#065", - "drilldown" : "065", - "y" : 71 + "drilldown" : "065" },