aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-07-27 21:12:45 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-07-27 21:12:45 +0100
commitd2a093191440c0932086eac5f42db7541ccbd6d7 (patch)
treebaace5a9fc75291046295413177cd098c2e7a3ec
parent4fcc4e6faca6301608b3777f959573cb0edddffb (diff)
downloadperlweeklychallenge-club-d2a093191440c0932086eac5f42db7541ccbd6d7.tar.gz
perlweeklychallenge-club-d2a093191440c0932086eac5f42db7541ccbd6d7.tar.bz2
perlweeklychallenge-club-d2a093191440c0932086eac5f42db7541ccbd6d7.zip
- Added solutions by Ulrich Rieke.
-rw-r--r--challenge-175/ulrich-rieke/cpp/ch-2.cpp55
-rw-r--r--challenge-175/ulrich-rieke/haskell/ch-1.hs15
-rw-r--r--challenge-175/ulrich-rieke/haskell/ch-2.hs14
-rw-r--r--challenge-175/ulrich-rieke/perl/ch-1.pl22
-rw-r--r--challenge-175/ulrich-rieke/perl/ch-2.pl65
-rw-r--r--challenge-175/ulrich-rieke/raku/ch-1.raku19
-rw-r--r--challenge-175/ulrich-rieke/raku/ch-2.raku28
-rw-r--r--stats/pwc-current.json273
-rw-r--r--stats/pwc-language-breakdown-summary.json48
-rw-r--r--stats/pwc-language-breakdown.json2390
-rw-r--r--stats/pwc-leaders.json730
-rw-r--r--stats/pwc-summary-1-30.json34
-rw-r--r--stats/pwc-summary-121-150.json100
-rw-r--r--stats/pwc-summary-151-180.json44
-rw-r--r--stats/pwc-summary-181-210.json126
-rw-r--r--stats/pwc-summary-211-240.json34
-rw-r--r--stats/pwc-summary-241-270.json52
-rw-r--r--stats/pwc-summary-31-60.json50
-rw-r--r--stats/pwc-summary-61-90.json46
-rw-r--r--stats/pwc-summary-91-120.json34
-rw-r--r--stats/pwc-summary.json568
21 files changed, 2492 insertions, 2255 deletions
diff --git a/challenge-175/ulrich-rieke/cpp/ch-2.cpp b/challenge-175/ulrich-rieke/cpp/ch-2.cpp
new file mode 100644
index 0000000000..2f910a3bfc
--- /dev/null
+++ b/challenge-175/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,55 @@
+#include <iostream>
+#include <vector>
+#include <numeric>
+#include <algorithm>
+
+int my_gcd( int a , int b ) { //Euclid's algorithm
+ if ( b >= a )
+ std::swap( a , b ) ;
+ while ( a != b ) {
+ a = a - b ;
+ if ( b >= a )
+ std::swap( a , b ) ;
+ }
+ return a ;
+}
+
+int myPhi( int n ) {
+ std::vector<int> totatives ;
+ for ( int i = 1 ; i < n ; i++ ) {
+ if ( my_gcd( i , n ) == 1 )
+ totatives.push_back( i ) ;
+ }
+ return totatives.size( ) ;
+}
+
+bool isPerfectTotient( int n ) {
+ if ( n == 1 ) {
+ return false ;
+ }
+ int current = n ;
+ std::vector<int> totients ;
+ do {
+ current = myPhi( current ) ;
+ totients.push_back( current ) ;
+ } while ( current != 1 ) ;
+ return std::accumulate( totients.begin( ) , totients.end( ) , 0 ) == n ;
+}
+
+int main( ) {
+ std::vector<int> perfectTotients ;
+ int current = 1 ;
+ while ( perfectTotients.size( ) != 20 ) {
+ if ( isPerfectTotient( current ) ) {
+ perfectTotients.push_back( current ) ;
+ }
+ current++ ;
+ }
+ for ( int i : perfectTotients ) {
+ std::cout << i ;
+ if ( i != perfectTotients.back( ) )
+ std::cout << ',' ;
+ }
+ std::cout << std::endl ;
+ return 0 ;
+}
diff --git a/challenge-175/ulrich-rieke/haskell/ch-1.hs b/challenge-175/ulrich-rieke/haskell/ch-1.hs
new file mode 100644
index 0000000000..5175584c08
--- /dev/null
+++ b/challenge-175/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,15 @@
+module Challenge175
+ where
+import Data.Time.Calendar
+
+findLastSunday :: Integer -> Int -> Day
+findLastSunday year month = myFunc $ fromGregorian year month
+(gregorianMonthLength year month )
+ where
+ myFunc :: Day -> Day
+ myFunc d = until ( (== Sunday ) . dayOfWeek ) change d
+ where
+ change = addDays (- 1 )
+
+solution :: Integer -> [String]
+solution year = map (\m -> showGregorian $ findLastSunday year m ) [1 .. 12]
diff --git a/challenge-175/ulrich-rieke/haskell/ch-2.hs b/challenge-175/ulrich-rieke/haskell/ch-2.hs
new file mode 100644
index 0000000000..998bd240a4
--- /dev/null
+++ b/challenge-175/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,14 @@
+module Challenge175_2
+ where
+
+chi :: Int -> Int
+chi n = length $ filter (\i -> gcd i n == 1 ) [1 .. n - 1]
+
+isPerfectTotient :: Int -> Bool
+isPerfectTotient n = (sum $ tail $ until ( (== 1 ) . last ) step [n]) == n
+where
+ step :: [Int] -> [Int]
+ step list = list ++ [ chi $ last list]
+
+solution :: [Int]
+solution = take 20 $ filter isPerfectTotient [1 , 2 ..]
diff --git a/challenge-175/ulrich-rieke/perl/ch-1.pl b/challenge-175/ulrich-rieke/perl/ch-1.pl
new file mode 100644
index 0000000000..408ab32dd9
--- /dev/null
+++ b/challenge-175/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use DateTime ;
+
+my $year = $ARGV[0] ;
+my @lastDays = ( 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31) ;
+my $dt1 = DateTime->new( year => $year , month => 12 , day => 10 ) ;
+if ( $dt1->is_leap_year ) {
+ $lastDays[1] = 29 ;
+}
+my @lastSundays ;
+for my $month( 1 .. 12 ) {
+ my $dt = DateTime->new( year => $year , month => $month , day =>
+ $lastDays[ $month - 1 ] ) ;
+ while ( $dt->day_of_week != 7 ) {
+ $dt->subtract( days => 1 ) ;
+ }
+ push @lastSundays , $dt ;
+}
+map { say $_->ymd} @lastSundays ;
diff --git a/challenge-175/ulrich-rieke/perl/ch-2.pl b/challenge-175/ulrich-rieke/perl/ch-2.pl
new file mode 100644
index 0000000000..15924eaddb
--- /dev/null
+++ b/challenge-175/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,65 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( reduce ) ;
+
+sub gcd { #Euclid's algorithm!
+ my $firstNum = shift ;
+ my $secondNum = shift ;
+ if ( $secondNum >= $firstNum ) {
+ my $swapped = $firstNum ;
+ $firstNum = $secondNum ;
+ $secondNum = $swapped ;
+ }
+ while ( $firstNum != $secondNum ) {
+ $firstNum = $firstNum - $secondNum ;
+ if ( $secondNum >= $firstNum ) {
+ my $swapped = $firstNum ;
+ $firstNum = $secondNum ;
+ $secondNum = $swapped ;
+ }
+ }
+ return $firstNum ;
+}
+
+sub myPhi {
+ my $number = shift ;
+ my @totatives ;
+ for my $i ( 1 .. $number - 1 ) {
+ if ( gcd( $i , $number ) == 1 ) {
+ push @totatives, $i ;
+ }
+ }
+ return scalar( @totatives ) ;
+}
+
+sub isPerfectTotient {
+ my $number = shift ;
+ if ( $number == 1 ) {
+ return 0 ;
+ }
+ my $start = $number ;
+ my @totients ;
+ do {
+ $start = myPhi( $start ) ;
+ push @totients, $start ;
+ } until ( $start == 1 ) ;
+ my $sum = reduce { $a + $b } @totients ;
+ if ( $sum == $number ) {
+ return 1 ;
+ }
+ else {
+ return 0 ;
+ }
+}
+
+my @perfectTotients ;
+my $current = 1 ;
+while ( scalar( @perfectTotients ) != 20 ) {
+ if ( isPerfectTotient( $current ) ) {
+ push @perfectTotients, $current ;
+ }
+ $current++ ;
+}
+say join( ',' , @perfectTotients ) ;
diff --git a/challenge-175/ulrich-rieke/raku/ch-1.raku b/challenge-175/ulrich-rieke/raku/ch-1.raku
new file mode 100644
index 0000000000..42c2278d4a
--- /dev/null
+++ b/challenge-175/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,19 @@
+use v6 ;
+
+sub MAIN( Int $year ) {
+ my @lastDays = ( 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 ,
+ 31 ) ;
+ if ( Date.new("$year-01-01").is-leap-year) {
+ @lastDays[ 1 ] = 29 ;
+ }
+ my @lastSundays ;
+ for (1 .. 12 ) -> $month {
+ my $d = Date.new( year => $year , month => $month , day =>
+ @lastDays[ $month - 1 ] ) ;
+ while ( $d.day-of-week != 7 ) {
+ $d = $d.earlier( day => 1 ) ;
+ }
+ @lastSundays.push( $d ) ;
+ }
+ .say for @lastSundays.map( { .Str } ) ;
+}
diff --git a/challenge-175/ulrich-rieke/raku/ch-2.raku b/challenge-175/ulrich-rieke/raku/ch-2.raku
new file mode 100644
index 0000000000..390b1809b3
--- /dev/null
+++ b/challenge-175/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,28 @@
+use v6 ;
+
+sub myPhi( Int $n --> Int ) {
+ return (1 .. $n - 1).grep( { $_ gcd $n == 1 }).elems ;
+}
+
+sub isPerfectTotient( Int $n is copy --> Bool ) {
+ if ( $n == 1 ) {
+ return False ;
+ }
+ my @totatives ;
+ my Int $current = $n ;
+ repeat {
+ $current = myPhi( $current ) ;
+ @totatives.push( $current ) ;
+ } until ( $current == 1 ) ;
+ return ([+] @totatives) == $n ;
+}
+
+my @perfectTotients ;
+my Int $current = 1 ;
+while ( @perfectTotients.elems != 20 ) {
+ if ( isPerfectTotient( $current ) ) {
+ @perfectTotients.push( $current ) ;
+ }
+ $current++ ;
+}
+say @perfectTotients ;
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 82a32caa04..c7c9e64663 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,9 +1,118 @@
{
+ "series" : [
+ {
+ "name" : "The Weekly Challenge - 175",
+ "data" : [
+ {
+ "name" : "Dave Cross",
+ "drilldown" : "Dave Cross",
+ "y" : 2
+ },
+ {
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "name" : "Flavio Poletti",
+ "y" : 6,
+ "drilldown" : "Flavio Poletti"
+ },
+ {
+ "name" : "Kjetil Skotheim",
+ "y" : 2,
+ "drilldown" : "Kjetil Skotheim"
+ },
+ {
+ "name" : "Laurent Rosenfeld",
+ "y" : 5,
+ "drilldown" : "Laurent Rosenfeld"
+ },
+ {
+ "name" : "Luca Ferrari",
+ "drilldown" : "Luca Ferrari",
+ "y" : 8
+ },
+ {
+ "drilldown" : "Mark Anderson",
+ "y" : 2,
+ "name" : "Mark Anderson"
+ },
+ {
+ "name" : "Mohammad S Anwar",
+ "y" : 2,
+ "drilldown" : "Mohammad S Anwar"
+ },
+ {
+ "name" : "Peter Campbell Smith",
+ "y" : 3,
+ "drilldown" : "Peter Campbell Smith"
+ },
+ {
+ "name" : "Robert DiCicco",
+ "drilldown" : "Robert DiCicco",
+ "y" : 2
+ },
+ {
+ "name" : "Roger Bell_West",
+ "y" : 5,
+ "drilldown" : "Roger Bell_West"
+ },
+ {
+ "name" : "Simon Proctor",
+ "y" : 1,
+ "drilldown" : "Simon Proctor"
+ },
+ {
+ "name" : "Stephen G Lynn",
+ "y" : 5,
+ "drilldown" : "Stephen G Lynn"
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "drilldown" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "drilldown" : "W. Luis Mochan",
+ "y" : 3,
+ "name" : "W. Luis Mochan"
+ }
+ ],
+ "colorByPoint" : 1
+ }
+ ],
+ "legend" : {
+ "enabled" : 0
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 175"
+ },
+ "subtitle" : {
+ "text" : "[Champions: 15] Last updated at 2022-07-27 20:10:10 GMT"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
"drilldown" : {
"series" : [
{
- "id" : "Dave Cross",
"name" : "Dave Cross",
+ "id" : "Dave Cross",
"data" : [
[
"Perl",
@@ -12,17 +121,18 @@
]
},
{
+ "name" : "E. Choroba",
+ "id" : "E. Choroba",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "E. Choroba",
- "id" : "E. Choroba"
+ ]
},
{
"name" : "Flavio Poletti",
+ "id" : "Flavio Poletti",
"data" : [
[
"Perl",
@@ -36,21 +146,21 @@
"Blog",
2
]
- ],
- "id" : "Flavio Poletti"
+ ]
},
{
"id" : "Kjetil Skotheim",
- "name" : "Kjetil Skotheim",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "name" : "Kjetil Skotheim"
},
{
"name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -64,11 +174,10 @@
"Blog",
1
]
- ],
- "id" : "Laurent Rosenfeld"
+ ]
},
{
- "name" : "Luca Ferrari",
+ "id" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -79,7 +188,7 @@
6
]
],
- "id" : "Luca Ferrari"
+ "name" : "Luca Ferrari"
},
{
"name" : "Mark Anderson",
@@ -92,8 +201,8 @@
"id" : "Mark Anderson"
},
{
- "id" : "Mohammad S Anwar",
"name" : "Mohammad S Anwar",
+ "id" : "Mohammad S Anwar",
"data" : [
[
"Perl",
@@ -106,6 +215,7 @@
]
},
{
+ "name" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -116,11 +226,11 @@
1
]
],
- "name" : "Peter Campbell Smith",
"id" : "Peter Campbell Smith"
},
{
"name" : "Robert DiCicco",
+ "id" : "Robert DiCicco",
"data" : [
[
"Perl",
@@ -130,12 +240,11 @@
"Raku",
1
]
- ],
- "id" : "Robert DiCicco"
+ ]
},
{
- "id" : "Roger Bell_West",
"name" : "Roger Bell_West",
+ "id" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -152,17 +261,16 @@
]
},
{
+ "name" : "Simon Proctor",
"id" : "Simon Proctor",
"data" : [
[
"Raku",
1
]
- ],
- "name" : "Simon Proctor"
+ ]
},
{
- "id" : "Stephen G Lynn",
"data" : [
[
"Perl",
@@ -177,10 +285,24 @@
1
]
],
+ "id" : "Stephen G Lynn",
"name" : "Stephen G Lynn"
},
{
- "id" : "W. Luis Mochan",
+ "name" : "Ulrich Rieke",
+ "id" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ]
+ },
+ {
"name" : "W. Luis Mochan",
"data" : [
[
@@ -191,120 +313,17 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "W. Luis Mochan"
}
]
},
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- }
- }
- },
"xAxis" : {
"type" : "category"
},
- "title" : {
- "text" : "The Weekly Challenge - 175"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "series" : [
- {
- "colorByPoint" : 1,
- "name" : "The Weekly Challenge - 175",
- "data" : [
- {
- "y" : 2,
- "drilldown" : "Dave Cross",
- "name" : "Dave Cross"
- },
- {
- "y" : 2,
- "name" : "E. Choroba",
- "drilldown" : "E. Choroba"
- },
- {
- "y" : 6,
- "name" : "Flavio Poletti",
- "drilldown" : "Flavio Poletti"
- },
- {
- "drilldown" : "Kjetil Skotheim",
- "name" : "Kjetil Skotheim",
- "y" : 2
- },
- {
- "y" : 5,
- "drilldown" : "Laurent Rosenfeld",
- "name" : "Laurent Rosenfeld"
- },
- {
- "name" : "Luca Ferrari",
- "drilldown" : "Luca Ferrari",
- "y" : 8
- },
- {
- "name" : "Mark Anderson",
- "drilldown" : "Mark Anderson",
- "y" : 2
- },
- {
- "name" : "Mohammad S Anwar",
- "drilldown" : "Mohammad S Anwar",
- "y" : 2
- },
- {
- "y" : 3,
- "drilldown" : "Peter Campbell Smith",
- "name" : "Peter Campbell Smith"
- },
- {
- "y" : 2,
- "name" : "Robert DiCicco",
- "drilldown" : "Robert DiCicco"
- },
- {
- "drilldown" : "Roger Bell_West",
- "name" : "Roger Bell_West",
- "y" : 5
- },
- {
- "drilldown" : "Simon Proctor",
- "name" : "Simon Proctor",
- "y" : 1
- },
- {
- "y" : 5,
- "drilldown" : "Stephen G Lynn",
- "name" : "Stephen G Lynn"
- },
- {
- "y" : 3,
- "name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan"
- }
- ]
- }
- ],
"tooltip" : {
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
"followPointer" : 1,
+ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
"pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
- },
- "subtitle" : {
- "text" : "[Champions: 14] Last updated at 2022-07-27 20:00:08 GMT"
- },
- "legend" : {
- "enabled" : 0
- },
- "chart" : {
- "type" : "column"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index e766c02d23..3e925d51e0 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,19 +1,25 @@
{
+ "chart" : {
+ "type" : "column"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
"series" : [
{
+ "name" : "Contributions",
"dataLabels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "y" : 10,
- "format" : "{point.y:.0f}",
- "rotation" : -90,
"color" : "#FFFFFF",
+ "align" : "right",
+ "rotation" : -90,
+ "format" : "{point.y:.0f}",
+ "y" : 10,
"enabled" : "true",
- "align" : "right"
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
},
- "name" : "Contributions",
"data" : [
[
"Blog",
@@ -21,11 +27,11 @@
],
[
"Perl",
- 8519
+ 8521
],
[
"Raku",
- 5071
+ 5073
]
]
}
@@ -33,31 +39,25 @@
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
},
- "subtitle" : {
- "text" : "Last updated at 2022-07-27 20:00:08 GMT"
- },
- "legend" : {
- "enabled" : "false"
- },
- "chart" : {
- "type" : "column"
- },
"xAxis" : {
- "type" : "category",
"labels" : {
"style" : {
"fontSize" : "13px",
"fontFamily" : "Verdana, sans-serif"
}
- }
+ },
+ "type" : "category"
},
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2022]"
},
+ "subtitle" : {
+ "text" : "Last updated at 2022-07-27 20:10:10 GMT"
+ },
"yAxis" : {
+ "min" : 0,
"title" : {
"text" : null
- },
- "min" : 0
+ }
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 6606bc8495..1df716e4c4 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,9 +1,918 @@
{
+ "series" : [
+ {
+ "name" : "The Weekly Challenge Languages",
+ "data" : [
+ {
+ "y" : 161,
+ "drilldown" : "001",
+ "name" : "#001"
+ },
+ {
+ "name" : "#002",
+ "drilldown" : "002",
+ "y" : 125
+ },
+ {
+ "drilldown" : "003",
+ "y" : 83,
+ "name" : "#003"
+ },
+ {
+ "y" : 99,
+ "drilldown" : "004",
+ "name" : "#004"
+ },
+ {
+ "drilldown" : "005",
+ "y" : 78,
+ "name" : "#005"
+ },
+ {
+ "y" : 58,
+ "drilldown" : "006",
+ "name" : "#006"
+ },
+ {
+ "name" : "#007",
+ "y" : 65,
+ "drilldown" : "007"
+ },
+ {
+ "name" : "#008",
+ "y" : 78,
+ "drilldown" : "008"
+ },
+ {
+ "name" : "#009",
+ "y" : 76,
+ "drilldown" : "009"
+ },
+ {
+ "y" : 65,
+ "drilldown" : "010",
+ "name" : "#010"
+ },
+ {
+ "y" : 85,
+ "drilldown" : "011",
+ "name" : "#011"
+ },
+ {
+ "name" : "#012",
+ "drilldown" : "012",
+ "y" : 89
+ },
+ {
+ "name" : "#013",
+ "y" : 85,
+ "drilldown" : "013"
+ },
+ {
+ "drilldown" : "014",
+ "y" : 101,
+ "name" : "#014"
+ },
+ {
+ "name" : "#015",
+ "drilldown" : "015",
+ "y" : 99
+ },
+ {
+ "drilldown" : "016",
+ "y" : 71,
+ "name" : "#016"
+ },
+ {
+ "y" : 84,
+ "drilldown" : "017",
+ "name" : "#017"
+ },
+ {
+ "drilldown" : "018",
+ "y" : 81,
+ "name" : "#018"
+ },
+ {
+ "name" : "#019",
+ "y" : 103,
+ "drilldown" : "019"
+ },
+ {
+ "drilldown" : "020",
+ "y" : 101,
+ "name" : "#020"
+ },
+ {
+ "name" : "#021",
+ "drilldown" : "021",
+ "y" : 72
+ },
+ {
+ "y" : 68,
+ "drilldown" : "022",
+ "name" : "#022"
+ },
+ {
+ "name" : "#023",
+ "y" : 97,
+ "drilldown" : "023"
+ },
+ {
+ "y" : 75,
+ "drilldown" : "024",
+ "name" : "#024"
+ },
+ {
+ "y" : 59,
+ "drilldown" : "025",
+ "name" : "#025"
+ },
+ {
+ "name" : "#026",
+ "drilldown" : "026",
+ "y" : 74
+ },
+ {
+ "name" : "#027",
+ "drilldown" : "027",
+ "y" : 62
+ },
+ {
+ "drilldown" : "028",
+ "y" : 82,
+ "name" : "#028"
+ },
+ {
+ "drilldown" : "029",
+ "y" : 81,
+ "name" : "#029"
+ },
+ {
+ "name" : "#030",
+ "drilldown" : "030",
+ "y" : 119
+ },
+ {
+ "name" : "#031",
+ "y" : 91,
+ "drilldown" : "031"
+ },
+ {
+ "y" : 96,
+ "drilldown" : "032",
+ "name" : "#032"
+ },
+ {
+ "y" : 112,
+ "drilldown" : "033",
+ "name" : "#033"
+ },
+ {
+ "name" : "#034",
+ "y" : 66,
+ "drilldown" : "034"
+ },
+ {
+ "drilldown" : "035",
+ "y" : 66,
+ "name" : "#035"
+ },
+ {
+ "y" : 70,
+ "drilldown" : "036",
+ "name" : "#036"
+ },
+ {
+ "name" : "#037",
+ "y" : 69,
+ "drilldown" : "037"
+ },
+ {
+ "y" : 70,
+ "drilldown" : "038",
+ "name" : "#038"
+ },
+ {
+ "name" : "#039",
+ "drilldown" : "039",
+ "y" : 64
+ },
+ {
+ "y" : 75,
+ "drilldown" : "040",
+ "name" : "#040"
+ },
+ {
+ "y" : 78,
+ "drilldown" : "041",
+ "name" : "#041"
+ },
+ {
+ "name" : "#042",
+ "y" : 94,
+ "drilldown" : "042"
+ },
+ {
+ "y" : 70,
+ "drilldown" : "043",
+ "name" : "#043"
+ },
+ {
+ "y" : 87,
+ "drilldown" : "044",
+ "name" : "#044"
+ },
+ {
+ "drilldown" : "045",
+ "y" : 98,
+ "name" : "#045"
+ },
+ {
+ "name" : "#046",
+ "drilldown" : "046",
+ "y" : 89
+ },
+ {
+ "name" : "#047",
+ "drilldown" : "047",
+ "y" : 86
+ },
+ {
+ "y" : 110,
+ "drilldown" : "048",
+ "name" : "#048"
+ },
+ {
+ "name" : "#049",
+ "y" : 91,
+ "drilldo