diff options
33 files changed, 3039 insertions, 2624 deletions
diff --git a/challenge-305/ulrich-rieke/cpp/ch-1.cpp b/challenge-305/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..4e853cd863 --- /dev/null +++ b/challenge-305/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,64 @@ +#include <string>
+#include <vector>
+#include <sstream>
+#include <iostream>
+#include <cmath>
+#include <algorithm>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> tokens ;
+ std::istringstream istr { text } ;
+ std::string word ;
+ while ( std::getline( istr , word , delimiter ) ) {
+ tokens.push_back( word ) ;
+ }
+ return tokens ;
+}
+
+int to_decimal( const std::string & binary ) {
+ return std::stoi( binary , nullptr , 2 ) ;
+}
+
+bool is_prime( const int number ) {
+ if ( number == 0 || number == 1 ) {
+ return false ;
+ }
+ else {
+ if ( number == 2 ) {
+ return true ;
+ }
+ else {
+ int limit = static_cast<int>( std::floor( std::sqrt(
+ static_cast<double>( number ) ))) ;
+ for ( int i = 2 ; i < limit + 1 ; i++ ) {
+ if ( number % i == 0 ) {
+ return false ;
+ }
+ }
+ return true ;
+ }
+ }
+}
+
+int main( ) {
+ std::cout << "Enter some binary digits separated by blanks!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ auto tokens { split( line , ' ' ) } ;
+ std::vector<int> decimals ;
+ std::string binary_string ;
+ for ( auto s : tokens ) {
+ binary_string += s ;
+ decimals.push_back( to_decimal( binary_string ) ) ;
+ }
+ std::vector<bool> truth_values ;
+ for ( int i : decimals ) {
+ truth_values.push_back( is_prime( i ) ) ;
+ }
+ std::cout << '(' ;
+ for ( auto v : truth_values ) {
+ std::cout << std::boolalpha << v << ' ' ;
+ }
+ std::cout << ")\n" ;
+ return 0 ;
+}
diff --git a/challenge-305/ulrich-rieke/cpp/ch-2.cpp b/challenge-305/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..e1d36d811d --- /dev/null +++ b/challenge-305/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,60 @@ +#include <iostream>
+#include <string>
+#include <sstream>
+#include <algorithm>
+#include <vector>
+#include <utility>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> tokens ;
+ std::istringstream istr { text } ;
+ std::string word ;
+ while ( std::getline( istr , word , delimiter ) ) {
+ tokens.push_back( word ) ;
+ }
+ return tokens ;
+}
+
+//translate a word into a word in the ordinary alphabet, that is the position
+//of a letter in the given alternative alphabet corresponds to a different one
+//in the ordinary one
+std::string translate( const std::vector<char> & alphabet , const
+ std::string & word ) {
+ std::string translated ;
+ for ( auto it = word.begin( ) ; it != word.end( ) ; ++it ) {
+ auto pos = std::find( alphabet.begin( ) , alphabet.end( ) , *it ) ;
+ int dist = static_cast<int>( std::distance( alphabet.begin( ) , pos ) ) ;
+ translated.push_back( static_cast<char>( dist + 97 )) ;
+ }
+ return translated ;
+}
+
+int main( ) {
+ std::cout << "Enter some strings separated by whitespace!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ auto words { split( line , ' ' ) } ;
+ std::cout << "Enter a complete alphabet!\n" ;
+ std::string alpha ;
+ std::getline( std::cin , alpha ) ;
+ auto letters { split( alpha , ' ' ) } ;
+ std::vector<char> allLetters ;
+ for ( auto w : letters ) {
+ allLetters.push_back( *w.begin( ) ) ;
+ }
+ std::vector<std::pair<std::string , std::string>> translated_pairs ;
+ for ( auto w : words ) {
+ translated_pairs.push_back( std::make_pair( w , translate( allLetters ,
+ w ))) ;
+ }
+ std::sort( translated_pairs.begin( ) , translated_pairs.end( ) , [](
+ const auto & p1 , const auto & p2 ) { return p1.second < p2.second
+ ; } ) ;
+ std::cout << '(' ;
+ for ( auto p : translated_pairs ) {
+ std::cout << p.first << ' ' ;
+ }
+ std::cout << ")\n" ;
+ return 0 ;
+}
+
diff --git a/challenge-305/ulrich-rieke/haskell/ch-1.hs b/challenge-305/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..392a4fc35b --- /dev/null +++ b/challenge-305/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,29 @@ +module Challenge305
+ where
+
+toDecimal :: [Int] -> Int
+toDecimal binaries = sum $ zipWith ( * ) (reverse binaries ) ( iterate ( * 2 ) 1 )
+
+isPrime :: Int -> Bool
+isPrime n
+ |n == 0 = False
+ |n == 1 = False
+ |n == 2 = True
+ |otherwise = all(\i -> mod n i /= 0 ) [2..limit]
+ where
+ limit = floor $ sqrt $ fromIntegral n
+
+makeDecimals :: [Int] -> [Int]
+makeDecimals binaries = map (\i -> toDecimal $ take i binaries ) [1..length binaries]
+
+solution :: [Int] -> [Bool]
+solution list =
+ let decimals = makeDecimals list
+ in map isPrime decimals
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some binary digits separated by blanks!"
+ digitline <- getLine
+ print $ solution $ map read $ words digitline
+
diff --git a/challenge-305/ulrich-rieke/haskell/ch-2.hs b/challenge-305/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..cf95655ded --- /dev/null +++ b/challenge-305/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,23 @@ +module Challenge305_2
+ where
+import Data.Char ( chr )
+import Data.List ( findIndices , sortOn)
+
+translate :: String -> [Char] -> String
+translate word alphabet = map (\i -> chr ( i + 97 )) $ map (\c -> head $
+ findIndices ( == c ) alphabet ) word
+
+solution :: [String] -> [Char] -> [String]
+solution words alphabet =
+ let pairs = map (\w -> ( w , translate w alphabet ) ) words
+ sorted = sortOn snd pairs
+ in map fst sorted
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some words separated by spaces!"
+ wordline <- getLine
+ putStrLn "Enter a complete alphabet , letters separated by spaces!"
+ letterline <- getLine
+ let letters = map head $ words letterline
+ print $ solution ( words wordline ) letters
diff --git a/challenge-305/ulrich-rieke/perl/ch-1.pl b/challenge-305/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..800c76aed5 --- /dev/null +++ b/challenge-305/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,59 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+#convert from binary to decimal by hand( somehow, I never ever particularly
+#liked the pack-unpack duality...!
+sub to_decimal {
+ my $binary = shift ;
+ my $sum = 0 ;
+ my $multiply = 1 ;
+ my @reversed = reverse( split(// , $binary) ) ;
+ for my $number( @reversed ) {
+ $sum += $number * $multiply ;
+ $multiply *= 2 ;
+ }
+ return $sum ;
+}
+
+sub isPrime {
+ my $number = shift ;
+ if ( $number == 0 || $number == 1 ) {
+ return 0 ;
+ }
+ elsif ( $number == 2 ) {
+ return 1 ;
+ }
+ else {
+ my $limit = int( sqrt( $number ) ) ;
+ for my $num( 2..$limit ) {
+ if ( $number % $num == 0 ) {
+ return 0 ;
+ last ;
+ }
+ }
+ return 1 ;
+ }
+}
+
+say "Enter some binary strings separated by spaces!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @binaries = split( /\s/ , $line ) ;
+my $binstring ;
+my @truth_values ;
+my @decimals ;
+for my $number( @binaries ) {
+ $binstring .= $number ;
+ push( @decimals , to_decimal( $binstring )) ;
+}
+for my $num( @decimals ) {
+ if ( isPrime( $num ) ) {
+ push( @truth_values , "true" ) ;
+ }
+ else {
+ push( @truth_values , "false" ) ;
+ }
+}
+say '(' . join( ',' , @truth_values ) . ')' ;
diff --git a/challenge-305/ulrich-rieke/perl/ch-2.pl b/challenge-305/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..690eeddf7b --- /dev/null +++ b/challenge-305/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+#look for the position of every letter in the new alphabet ;
+#translate that into a word in the conventional alphabet
+sub translate {
+ my $word = shift ;
+ my $alphabet = shift ;
+ my $translated ;
+ my $concatenated = join( '' , @$alphabet ) ;
+ for my $i( 0..length( $word ) - 1 ) {
+ my $pos = index( $concatenated , substr( $word , $i , 1 ) ) ;
+ $translated .= chr( $pos + 97 ) ;#the corresponding character in the
+#normal alphabet
+ }
+ return $translated ;
+}
+
+say "Enter some strings separated by spaces!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @words = split( /\s+/ , $line ) ;
+say "Enter a complete alphabet!" ;
+$line = <STDIN> ;
+chomp $line ;
+my @letters = split( /\s+/ , $line ) ;
+my %translation ; #maps every word that was input to a translation in the
+#ordinary alphabet
+map { $translation{$_} = translate( $_ , \@letters ) } @words ;
+my @sorted = sort { $translation{$a} cmp $translation{$b} } keys
+%translation ;
+say '(' . join( ',' , @sorted ) . ')' ;
+
+
diff --git a/challenge-305/ulrich-rieke/raku/ch-1.raku b/challenge-305/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..5143749dc7 --- /dev/null +++ b/challenge-305/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,20 @@ +use v6 ;
+
+sub to_decimals( @binaries ) {
+ my @decimals ;
+ my $len = @binaries.elems ;
+ my $numberstring ;
+ for (0..$len - 1 ) -> $i {
+ $numberstring ~= ~@binaries[ $i ] ;
+ my $number = $numberstring.parse-base( 2 ) ;
+ @decimals.push( $number ) ;
+ }
+ return @decimals ;
+}
+
+say "Enter some binary digits separated by blanks!" ;
+my $line = $*IN.get ;
+my @numbers = $line.words.map( {.Int} ) ;
+my @decimals = to_decimals( @numbers ) ;
+my @truth_values = @decimals.map( {.is-prime} ) ;
+say '(' ~ join( ',' , @truth_values ) ~ ')' ;
diff --git a/challenge-305/ulrich-rieke/raku/ch-2.raku b/challenge-305/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..31ceb9bea6 --- /dev/null +++ b/challenge-305/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,26 @@ +use v6 ;
+
+#translate a given word into a word in the ordinary alphabet by mapping
+#the place a letter was found in the alternative alphabet to the "normal"
+#one
+sub translate( $word , @alphabet ) {
+ my $translated ;
+ my $alternative = join( '' , @alphabet ) ;
+ for ( $word.comb ) -> $letter {
+ my $pos = $alternative.index( $letter ) ;
+ $translated ~= chr( $pos + 97 ) ;
+ }
+ return $translated ;
+}
+
+say "Enter some strings separated by whitespace!" ;
+my $line = $*IN.get ;
+my @words = $line.words ;
+say "Enter a complete alphabet separated by spaces!" ;
+my $alphaline = $*IN.get ;
+my @letters = $alphaline.words ;
+my %translation ;
+@words.map( { %translation{$_} = translate( $_ , @letters ) } ) ;
+my @sorted = %translation.keys.sort( {%translation{$^a} leg
+ %translation{$^b} } ) ;
+say '(' ~ join( ',' , @sorted ) ~ ')' ;
diff --git a/challenge-305/ulrich-rieke/rust/ch-1.rs b/challenge-305/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..70b60309e9 --- /dev/null +++ b/challenge-305/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,41 @@ +use std::io ; + +fn to_decimals( binaries : &Vec<u8> ) -> Vec<u32> { + let mut decimals : Vec<u32> = vec![] ; + let len : usize = binaries.len( ) ; + let mut numberstring : String = String::new( ) ; + for i in 0..len { + let numstr : String = binaries[i].to_string( ) ; + numberstring.push_str( &numstr ) ; + let numberstr : &str = numberstring.as_str( ) ; + let number : u32 = u32::from_str_radix( numberstr , 2 ).unwrap( ) ; + decimals.push( number ) ; + } + decimals +} + +fn is_prime( number : u32 ) -> bool { + let result : bool = match number { + 0 => false , + 1 => false , + 2 => true , + _ => { + let limit : u32 = (number as f32).sqrt( ).floor( ) as u32 ; + (2..=limit).all( |d| number % d != 0 ) + } + } ; + result +} + +fn main() { + println!("Enter some 0 and 1 separated by blanks!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let binaries : Vec<u8> = inline.trim( ).split_whitespace( ).map( |s| + s.parse::<u8>( ).unwrap( ) ).collect( ) ; + let decimals : Vec<u32> = to_decimals( &binaries ) ; + let mut truth_values : Vec<bool> = Vec::new( ) ; + decimals.into_iter( ).map( |d| is_prime( d ) ).for_each( |v| + truth_values.push( v ) ) ; + println!("{:?}" , truth_values ) ; +} diff --git a/challenge-305/ulrich-rieke/rust/ch-2.rs b/challenge-305/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..e26721a645 --- /dev/null +++ b/challenge-305/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,38 @@ +use std::io ; + +fn main() { + println!("Enter some words separated by whitespace!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let mut words : Vec<&str> = inline.trim( ).split_whitespace( ). + collect( ) ; + println!("Enter a complete alfabet ! Separate letters by spaces!") ; + let mut letterline : String = String::new( ) ; + io::stdin( ).read_line( &mut letterline ).unwrap( ) ; + let letters : Vec<char> = letterline.trim( ).split_whitespace( ).map( + |s| s.chars( ).nth( 0 ).unwrap( ) ).collect( ) ; + words.sort_by( |s1 , s2| { + if s1.starts_with( &*s2 ) { + s1.cmp( &s2 ) + } + else { + if s2.starts_with( &*s1 ) { + s2.cmp( &s1 ) + } + else { + let zipped : Vec<(char, char)> = s1.chars( ).zip( + s2.chars( ) ).collect( ) ; + let mut i : usize = 0 ; + while zipped[i].0 == zipped[i].1 { + i += 1 ; + } + let first_pos : usize = letters.iter( ).position( |c| + *c == zipped[i].0 ).unwrap( ) ; + let second_pos : usize = letters.iter( ).position( |c| + *c == zipped[i].1 ).unwrap( ) ; + first_pos.cmp( &second_pos ) + } + } + }) ; + println!("{:?}" , words ) ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index ddfffd5fb4..cba94c7f34 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,51 +1,127 @@ { - "chart" : { - "type" : "column" + "tooltip" : { + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "followPointer" : 1 }, - "subtitle" : { - "text" : "[Champions: 10] Last updated at 2025-01-21 17:59:49 GMT" + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } }, "xAxis" : { "type" : "category" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + "title" : { + "text" : "The Weekly Challenge - 305" + }, + "series" : [ + { + "data" : [ + { + "name" : "David Ferrone", + "drilldown" : "David Ferrone", + "y" : 2 + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "name" : "Feng Chang", + "drilldown" : "Feng Chang", + "y" : 2 + }, + { + "drilldown" : "Luca Ferrari", + "name" : "Luca Ferrari", + "y" : 12 + }, + { + "y" : 2, + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, + { + "y" : 3, + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" + }, + { + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley", + "y" : 3 + }, + { + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West", + "y" : 4 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "y" : 3, + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + } + ], + "name" : "The Weekly Challenge - 305", + "colorByPoint" : 1 } + ], + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : 0 }, "drilldown" : { "series" : [ { - "name" : "David Ferrone", "data" : [ [ "Perl", 2 ] ], + "name" : "David Ferrone", "id" : "David Ferrone" }, { + "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ], - "id" : "E. Choroba", - "name" : "E. Choroba" + ] }, { "id" : "Feng Chang", + "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] - ], - "name" : "Feng Chang" + ] }, { + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -56,28 +132,27 @@ 10 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "id" : "Luca Ferrari" }, { - "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { + "id" : "Niels van Dijke", + "name" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ], - "id" : "Niels van Dijke", - "name" : "Niels van Dijke" + ] }, { "data" : [ @@ -90,12 +165,12 @@ 1 ] ], - "id" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" + "name" : "Peter Campbell Smith", + "id" : "Peter Campbell Smith" }, { - "name" : "Robbie Hatley", "id" : "Robbie Hatley", + "name" : "Robbie Hatley", "data" : [ [ "Perl", @@ -108,6 +183,8 @@ ] }, { + "id" : "Roger Bell_West", + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -117,13 +194,25 @@ "Raku", 2 ] - ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" + ] + }, + { + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ] }, { - "name" : "W. Luis Mochan", "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -137,82 +226,12 @@ } ] }, - "legend" : { - "enabled" : 0 - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 + "yAxis" : { + "title" : { + "text" : "Total Solutions" } }, - "tooltip" : { - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" - }, - "title" : { - "text" : "The Weekly Challenge - 305" - }, - "series" : [ - { - "data" : [ - { - "y" : 2, - "name" : "David Ferrone", - "drilldown" : "David Ferrone" - }, - { - "drilldown" : "E. Choroba", - "name" : "E. Choroba", - "y" : 2 - }, - { - "name" : "Feng Chang", - "drilldown" : "Feng Chang", - "y" : 2 - }, - { - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari", - "y" : 12 - }, - { - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson", - "y" : 2 - }, - { - "y" : 2, - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke" - }, - { - "name" : "Peter Campbell Smith", - "drilldown" : "Peter Campbell Smith", - "y" : 3 - }, - { - "y" : 3, - "name" : "Robbie Hatley", - "drilldown" : "Robbie Hatley" - }, - { - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West", - "y" : 4 - }, - { - "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" - } - ], - "name" : "The Weekly Challenge - 305", - "colorByPoint" : 1 - } - ] + "subtitle" : { + "text" : "[Champions: 11] Last updated at 2025-01-21 18:11:40 GMT" + } } diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index 69af41bdcb..ad874a6986 100644 --- a/stats/pwc-language-breakdown-2019.json +++ b/stats/pwc-language-breakdown-2019.json @@ -1,4 +1,15 @@ { + "chart" : { + "type" : "column" + }, + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true" + }, + "title" : { + "text" : "The Weekly Challenge Language" + }, "plotOptions" : { "series" : { "borderWidth" : 0, @@ -8,12 +19,226 @@ } } }, - "legend" : { - "enabled" : "false" + "xAxis" : { + "type" : "category" }, + "series" : [ + { + "data" : [ + { + "y" : 80, + "drilldown" : "041", + "name" : "041" + }, + { + "y" : 77, + "drilldown" : "040", + "name" : "040" + }, + { + "y" : 68, + "drilldown" : "039", + "name" : "039" + }, + { + "y" : 74, + "drilldown" : "038", + "name" : "038" + }, + { + "y" : 70, + "drilldown" : "037", + "name" : "037" + }, + { + "y" : 70, + "drilldown" : "036", + "name" : "036" + }, + { + "drilldown" : "035", + "name" : "035", + "y" : 68 + }, + { + "name" : "034", + "drilldown" : "034", + "y" : 70 + }, + { + "y" : 113, + "drilldown" : "033", + "name" : "033" + }, + { + "drilldown" : "032", + "name" : "032", + "y" : 97 + }, + { + "drilldown" : "031", + "name" : "031", + "y" : 93 + }, + { + "y" : 120, + "name" : "030", + "drilldown" : "030" + }, + { + "y" : 83, + "name" : "029", + "drilldown" : "029" + } |
