diff options
26 files changed, 3066 insertions, 2720 deletions
diff --git a/challenge-255/ulrich-rieke/cpp/ch-1.cpp b/challenge-255/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..1ceec6e660 --- /dev/null +++ b/challenge-255/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,33 @@ +#include <iostream>
+#include <string>
+#include <map>
+
+int main( ) {
+ std::cout << "Enter a word!\n" ;
+ std::string firstWord ;
+ std::cin >> firstWord ;
+ std::cout << "Enter a second word, permuting the first one, plus one character!\n" ;
+ std::string secondWord ;
+ std::cin >> secondWord ;
+ std::map<char , int> firstFreq ;
+ std::map<char , int> secondFreq ;
+ for ( auto c : firstWord )
+ firstFreq[c]++ ;
+ for ( auto c : secondWord )
+ secondFreq[c]++ ;
+ for ( auto c : secondWord ) {
+ if ( firstWord.find( c ) == std::string::npos ) {
+ std::cout << c << '\n' ;
+ break ;
+ }
+ else {
+ auto it1 = firstFreq.find( c ) ;
+ auto it2 = secondFreq.find( c ) ;
+ if ( it1->second != it2->second ) {
+ std::cout << c << '\n' ;
+ break ;
+ }
+ }
+ }
+ return 0 ;
+}
diff --git a/challenge-255/ulrich-rieke/cpp/ch-2.cpp b/challenge-255/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..5679e17748 --- /dev/null +++ b/challenge-255/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,62 @@ +#include <string>
+#include <iostream>
+#include <regex>
+#include <map>
+#include <utility>
+#include <vector>
+#include <algorithm>
+
+std::vector<std::string> split( const std::string & startline ,
+ const std::string & sep ) {
+ std::vector<std::string> separated ;
+ std::string::size_type start { 0 } ;
+ std::string::size_type pos ;
+ do {
+ pos = startline.find_first_of( sep , start ) ;
+ separated.push_back( startline.substr(start , pos - start )) ;
+ start = pos + 1 ;
+ } while ( pos != std::string::npos ) ;
+ return separated ;
+}
+
+int main( ) {
+ std::cout << "Enter a paragraph of words, <return> to end!\n" ;
+ std::vector<std::string> paragraph ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ while ( ! line.empty( ) ) {
+ paragraph.push_back( line ) ;
+ std::getline( std::cin, line ) ;
+ }
+ std::cout << "Enter a banned word!\n" ;
+ std::string banned ;
+ std::cin >> banned ;
+ std::regex pattern {R"((.+)\\W$)"} ;
+ std::map<std::string, int> frequencies ;
+ for ( auto & sentence : paragraph ) {
+ std::vector<std::string> words { split( sentence , " " ) } ;
+ for ( auto & word : words ) {
+ std::smatch matches ;
+ if (std::regex_match( word , matches , pattern ) ) {
+ frequencies[ matches[1] ]++ ;
+ }
+ else {
+ frequencies[ word ]++ ;
+ }
+ }
+ }
+ std::vector<std::pair<std::string , int>> allPairs { frequencies.begin( ) ,
+ frequencies.end( ) } ;
+ std::sort( allPairs.begin( ) , allPairs.end( ) , []( const auto & a, const
+ auto & b ) { return a.second > b.second ; } ) ;
+ if ( allPairs.begin( )->first != banned ) {
+ std::cout << allPairs.begin( )->first ;
+ }
+ else {
+ std::cout << (allPairs.begin( ) + 1)->first ;
+ }
+ std::cout << '\n' ;
+ return 0 ;
+}
+
+
diff --git a/challenge-255/ulrich-rieke/haskell/ch-1.hs b/challenge-255/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..568713ebc9 --- /dev/null +++ b/challenge-255/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,21 @@ +module Challenge255
+ where
+import Data.List ( sort )
+
+solution :: String -> String -> Char
+solution s1 s2 = selectedC
+ where
+ selected = filter (\c -> notElem c s1 ) s2
+ selectedC = if not $ null selected then head selected else head $ filter (\c ->
+ count c s2 /= count c s1 ) s2
+ where
+ count :: Char -> String -> Int
+ count someChar aString = length $ filter ( (==someChar) ) aString
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a word!"
+ firstWord <- getLine
+ putStrLn "Enter a second word , permuting the first, + 1 character!"
+ secondWord <- getLine
+ print $ solution firstWord secondWord
diff --git a/challenge-255/ulrich-rieke/haskell/ch-2.hs b/challenge-255/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..eab8cd6340 --- /dev/null +++ b/challenge-255/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,36 @@ +module Challenge255_2
+ where
+import Data.List ( sortOn , dropWhileEnd )
+
+getMultipleLines :: Int -> IO [String]
+getMultipleLines n
+ |n <= 0 = return []
+ |otherwise = do
+ x <- getLine
+ xs <- getMultipleLines ( n - 1 )
+ let ret = (x:xs)
+ return ret
+
+count :: Eq a => a -> [a] -> Int
+count _ [] = 0
+count d (x:xs)
+ |d == x = 1 + count d xs
+ |otherwise = count d xs
+
+convert :: String -> String
+convert str = dropWhileEnd (\c -> elem c "!,.?()" ) str
+
+solution :: [String] -> String -> String
+solution words banned = fst $ last $ sortOn snd $ map (\w -> ( w, count
+ w words )) $ filter ( /= banned ) $ map convert words
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some lines of text!"
+ putStrLn "How many lines do you want to enter?"
+ lineno <- getLine
+ lines <- getMultipleLines ( read lineno )
+ putStrLn "Enter a banned word!"
+ banned <- getLine
+ let allWords = concat $ map ( map convert . words ) lines
+ print $ solution allWords banned
diff --git a/challenge-255/ulrich-rieke/perl/ch-1.pl b/challenge-255/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..dbd3f614b4 --- /dev/null +++ b/challenge-255/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,19 @@ +use v5.36.0 ;
+
+say "Enter a word!" ;
+my $firstWord = <STDIN> ;
+chomp $firstWord ;
+say "Enter a second word with the same characters as above + 1!" ;
+my $secondWord = <STDIN> ;
+chomp $secondWord ;
+my %firstFreq ;
+my %secondFreq ;
+for my $letter ( split ( // , $firstWord ) ) {
+ $firstFreq{ $letter }++ ;
+}
+for my $letter( split( // , $secondWord ) ) {
+ $secondFreq{ $letter }++ ;
+}
+my @selected = grep { ( not exists( $firstFreq{ $_ } ) ) || $secondFreq{ $_ } !=
+ $firstFreq{ $_ } } keys %secondFreq ;
+say $selected[ 0 ] ;
diff --git a/challenge-255/ulrich-rieke/perl/ch-2.pl b/challenge-255/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..0760aa1146 --- /dev/null +++ b/challenge-255/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,30 @@ +use v5.36.0 ;
+#this includes all of use strict, use warnings, use feature 'say' !!!
+
+say "Enter a paragraph of words, <return> to end!" ;
+my @paragraph ;
+my $line = <STDIN> ;
+chomp $line ;
+while ( $line ) {
+ push @paragraph, $line ;
+ $line = <STDIN> ;
+ chomp $line ;
+}
+say "Enter a banned word!" ;
+my $banned = <STDIN> ;
+chomp $banned ;
+my %frequencies ;
+for my $sentence ( @paragraph ) {
+ my @words = split( /\s+/ , $sentence ) ;
+ for my $word ( @words ) {
+ $word =~ s/(.+)\W$/$1/ ;
+ $frequencies{ $word }++ ;
+ }
+}
+my @sorted = sort { $frequencies{ $b } <=> $frequencies{ $a } } keys %frequencies ;
+if ( $sorted[0] ne $banned ) {
+ say $sorted[0] ;
+}
+else {
+ say $sorted[1] ;
+}
diff --git a/challenge-255/ulrich-rieke/raku/ch-1.raku b/challenge-255/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..86eb548b0a --- /dev/null +++ b/challenge-255/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,16 @@ +use v6 ;
+
+say "Enter a word!" ;
+my $firstWord = $*IN.get ;
+say "Enter a second word as a permutation of the first + 1 letter!" ;
+my $secondWord = $*IN.get ;
+my %firstFreq ;
+my %secondFreq ;
+for $firstWord.comb -> $letter {
+ %firstFreq{ $letter }++ ;
+}
+for $secondWord.comb -> $letter {
+ %secondFreq{ $letter }++ ;
+}
+say %secondFreq.keys.grep( { (not %firstFreq{$_}:exists) || %secondFreq{$_} !=
+ %firstFreq{$_} } )[0] ;
diff --git a/challenge-255/ulrich-rieke/raku/ch-2.raku b/challenge-255/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..3defecbfc5 --- /dev/null +++ b/challenge-255/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,27 @@ +use v6 ;
+
+say "Enter a paragraph of words, enter <return> to end!" ;
+my @paragraph ;
+my $line = $*IN.get ;
+while ( $line ) {
+ @paragraph.push( $line ) ;
+ $line = $*IN.get ;
+}
+say "Enter a banned word!" ;
+my $banned = $*IN.get ;
+my %frequencies ;
+for @paragraph -> $sentence {
+ my @words = $sentence.words ;
+ for @words <-> $word {
+ $word ~~ s/(.+)<-[a..z]>$/$0/ ;
+ %frequencies{ $word }++ ;
+ }
+}
+my @sorted = %frequencies.keys.sort( {%frequencies{$^b} <=> %frequencies{$^a} } ) ;
+if ( @sorted[0] ne $banned ) {
+ say @sorted[0] ;
+}
+else {
+ say @sorted[1] ;
+}
+
diff --git a/challenge-255/ulrich-rieke/rust/ch-1.rs b/challenge-255/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..48b206a0d0 --- /dev/null +++ b/challenge-255/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,27 @@ +use std::io ; + +fn main() { + println!("Enter a first word!"); + let mut firstline : String = String::new( ) ; + io::stdin( ).read_line( &mut firstline ).unwrap( ) ; + let entered_line : &str = &*firstline ; + let changed1 = entered_line.trim( ) ; + let mut first_letters : Vec<char> = changed1.chars( ).collect( ) ; + first_letters.sort( ) ; + println!("Enter a second word with all the same characters and an additional one!") ; + let mut secondline : String = String::new( ) ; + io::stdin( ).read_line( &mut secondline ).unwrap( ) ; + let sec_line : &str = &*secondline ; + let changed2 = sec_line.trim( ) ; + let mut second_letters : Vec<char> = changed2.chars( ).collect( ) ; + second_letters.sort( ) ; + let mut solution : Vec<char> = Vec::new( ) ; + second_letters.iter().zip( first_letters.iter( ) ). + filter( | ( &a, &b ) | a != b ).for_each( |( a , _ )| solution.push( *a ) ) ; + if solution.len( ) > 0 { + println!("{}" , solution[0] ) ; + } + else { + println!("{}" , second_letters.pop( ).unwrap( ) ) ; + } +} diff --git a/challenge-255/ulrich-rieke/rust/ch-2.rs b/challenge-255/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..3366c84ef5 --- /dev/null +++ b/challenge-255/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,56 @@ +use std::io ; +use std::io::BufRead ; +use std::collections::HashMap ; + +fn main() -> io::Result<()> { + println!( "Enter a banned word in the paragraph!" ) ; + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_word : &str = &*inline ; + let changed = entered_word.trim( ) ; + println!("Enter a paragraph of text, <return> to end entry!"); + let mut lines = io::stdin( ).lock( ).lines( ) ; + let mut all_input : String = String::new( ) ; + while let Some( line ) = lines.next( ) { + let last_input = line.unwrap( ) ; + if last_input.len( ) == 0 { + break ; + } + else { + all_input.push_str( &last_input ) ; + all_input.push_str( "\n" ) ; + } + } + let rows : Vec<&str> = all_input.split( "\n" ).collect( ) ; + let mut frequencies : HashMap<&str, usize> = HashMap::new( ) ; + for r in & rows { + if r.len( ) != 0 { + let words : Vec<&str> = r.split_whitespace( ).map( | s | + s.trim( ) ).collect( ) ; + for w in & words { + let wo = w.trim_end_matches( | c : char | + ! c.is_ascii_alphabetic( ) ) ; + frequencies.entry( &*wo ).and_modify ( | s | *s += 1). + or_insert( 1 ) ; + } + } + } + let mut all_words : Vec<(&str, usize)> = Vec::new( ) ; + for ( key , val ) in frequencies.iter( ) { + all_words.push( ( key , *val ) ) ; + } + let the_words = &mut all_words[..] ; + the_words.sort_by( | a , b | b.1.cmp( &a.1 ) ) ; + let chosen_word = the_words.first( ).unwrap( ) ; + if chosen_word.0 != changed { + println!("{:?}" , chosen_word ) ; + } + else { + let mut iter = the_words.iter( ).skip( 1 ) ; + match iter.next( ) { + Some ( pair ) => println!("{:?}" , pair.0 ) , + None => println!("") , + } ; + } + Ok(()) +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 38fba30276..bc5acc15b0 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,24 +1,109 @@ { + "subtitle" : { + "text" : "[Champions: 11] Last updated at 2024-02-05 19:50:57 GMT" + }, + "xAxis" : { + "type" : "category" + }, + "title" : { + "text" : "The Weekly Challenge - 255" + }, + "legend" : { + "enabled" : 0 + }, + "tooltip" : { + "followPointer" : 1, + "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/>" + }, "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "series" : [ + { + "name" : "The Weekly Challenge - 255", + "data" : [ + { + "y" : 2, + "name" : "David Ferrone", + "drilldown" : "David Ferrone" + }, + { + "drilldown" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", + "y" : 3 + }, + { + "y" : 11, + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari" + }, + { + "y" : 2, + "name" : "Mark Anderson", + "drilldown" : "Mark Anderson" + }, + { + "y" : 2, + "name" : "Matthew Neleigh", + "drilldown" : "Matthew Neleigh" + }, + { + "y" : 2, + "drilldown" : "Peter Meszaros", + "name" : "Peter Meszaros" + }, + { + "y" : 3, + "name" : "Robbie Hatley", + "drilldown" : "Robbie Hatley" + }, + { + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor", + "y" : 2 + }, + { + "y" : 4, + "drilldown" : "Thomas Kohler", + "name" : "Thomas Kohler" + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "y" : 3, + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + } + ], + "colorByPoint" : 1 + } + ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" } }, "drilldown" : { "series" : [ { - "name" : "David Ferrone", "id" : "David Ferrone", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "David Ferrone" }, { "id" : "Laurent Rosenfeld", @@ -39,6 +124,8 @@ "name" : "Laurent Rosenfeld" }, { + "id" : "Luca Ferrari", + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -48,9 +135,7 @@ "Blog", 9 ] - ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + ] }, { "id" : "Mark Anderson", @@ -73,14 +158,14 @@ "name" : "Matthew Neleigh" }, { - "id" : "Peter Meszaros", "data" : [ [ "Perl", 2 ] ], - "name" : "Peter Meszaros" + "name" : "Peter Meszaros", + "id" : "Peter Meszaros" }, { "data" : [ @@ -93,18 +178,18 @@ 1 ] ], - "id" : "Robbie Hatley", - "name" : "Robbie Hatley" + "name" : "Robbie Hatley", + "id" : "Robbie Hatley" }, { + "id" : "Simon Proctor", "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ], - "id" : "Simon Proctor" + ] }, { "data" : [ @@ -117,10 +202,25 @@ 2 ] ], - "id" : "Thomas Kohler", - "name" : "Thomas Kohler" + "name" : "Thomas Kohler", + "id" : "Thomas Kohler" + }, + { + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ] }, { + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -131,92 +231,11 @@ 1 ] ], - "id" : "W. Luis Mochan", "name" : "W. Luis Mochan" } ] }, - "series" : [ - { - "data" : [ - { - "y" : 2, - "drilldown" : "David Ferrone", - "name" : "David Ferrone" - }, - { - "y" : 3, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 11 - }, - { - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson", - "y" : 2 - }, - { - "drilldown" : "Matthew Neleigh", - "name" : "Matthew Neleigh", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "Peter Meszaros", - "name" : "Peter Meszaros" - }, - { - "drilldown" : "Robbie Hatley", - "name" : "Robbie Hatley", - "y" : 3 - }, - { - "name" : "Simon Proctor", - "drilldown" : "Simon Proctor", - "y" : 2 - }, - { - "y" : 4, - "drilldown" : "Thomas Kohler", - "name" : "Thomas Kohler" - }, - { - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan", - "y" : 3 - } - ], - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 255" - } - ], - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, "chart" : { "type" : "column" - }, - "subtitle" : { - "text" : "[Champions: 10] Last updated at 2024-02-05 19:20:52 GMT" - }, - "tooltip" : { - "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/>" - }, - "xAxis" : { - "type" : "category" - }, - "title" : { - "text" : "The Weekly Challenge - 255" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index e95b696031..1c7a5ef5b4 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,30 +1,36 @@ { - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "Last updated at 2024-02-05 19:50:57 GMT" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2024]" }, "legend" : { "enabled" : "false" }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "chart" : { + "type" : "column" + }, "yAxis" : { - "min" : 0, "title" : { "text" : null - } + }, + "min" : 0 }, "series" : [ { - "dataLabels" : { - "enabled" : "true", - "y" : 10, - "format" : "{point.y:.0f}", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "rotation" : -90, - "color" : "#FFFFFF", - "align" : "right" - }, "data" : [ [ "Blog", @@ -32,32 +38,26 @@ ], [ "Perl", - 13142 + 13144 ], [ "Raku", - 7588 + 7590 ] ], + "dataLabels" : { + "color" : "#FFFFFF", + "rotation" : -90, + "enabled" : "true", + "y" : 10, + "format" : "{point.y:.0f}", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "align" : "right" + }, "name" : "Contributions" } - ], - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2024]" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - } - }, - "subtitle" : { - "text" : "Last updated at 2024-02-05 19:20:52 GMT" - } + ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index bb1ee23416..de852e799a 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,43 +1,1316 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-02-05 19:20:52 GMT" + "title" : { + "text" : "The Weekly Challenge Language" }, "xAxis" : { "type" : "category" }, + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-02-05 19:50:57 GMT" + }, "tooltip" : { - "followPointer" : "true", "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true", "headerFormat" : "<span style=\"font-size:11px\"></span>" }, - "title" : { - "text" : "The Weekly Challenge Language" - }, + "series" : [ + { + "name" : "The Weekly Challenge Languages", + "data" : [ + { + "name" : "#001", + "drilldown" : "001", + "y" : 164 + }, + { + "y" : 129, + "drilldown" : "002", + "name" : "#002" + }, + { + "y" : 87, + "name" : "#003", + "drilldown" : "003" + }, + { + "name" : "#004", + "drilldown" : "004", + "y" : 103 + }, + { + "y" : 80, + "name" : "#005", + "drilldown" : "005" + }, + { + "name" : "#006", + "drilldown" : "006", + "y" : 61 + }, + { + "name" : "#007", + "drilldown" : "007", + "y" : 69 + }, + { + "name" : "#008", + "drilldown" : "008", + "y" : 82 + }, + { + "y" : 80, + "name" : "#009", + "drilldown" : "009" + }, + { + "y" : 69, + "drilldown" : "010", + "name" : "#010" + }, + { + "y" : 89, + "name" : "#011", + "drilldown" : "011" + }, + { + "y" : 92, + "name" : "#012", + "drilldown" : "012" + }, + { + "y" : 87, + "name" : "#013", + "drilldown" : "013" + }, + { + "y" : 102, + "drilldown" : "014", + "name" : "#014" + }, + { + "y" : 101, + "drilldown" : "015", + "name" : "#015" + }, + { + "y" : 75, + "name" : "#016", + "drilldown" : "016" + }, + { + "name" : "#017", + "drilldown" : "017", + "y" : 86 + }, + { + "y" : 83, + "drilldown" : "018", + "name" : "#018" + }, + { + "y" : 105, + "drilldown" : "019", + "name" : "#019" + }, + { + "name" : "#020", + "drilldown" : "020", + "y" : 103 + }, + { + "y" : 74, + "drilldown" : "021", + "name" : "#021" + }, + { + "name" : "#022", + "drilldown" : "022", + "y" : 72 + }, + { + "name" : "#023", + "drilldown" : "023", + "y" : 101 + }, + { + "drilldown" : "024", + "name" : "#024", |
