aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-07-06 21:10:49 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-07-06 21:10:49 +0100
commit3ae846f978ccc384ea35823fb2f8b225c83e6dc8 (patch)
treec58d01fb852431a16c1dc049653af1b33265c911
parentd755779cfd8bf53a711c20be137ed8bf93a78198 (diff)
downloadperlweeklychallenge-club-3ae846f978ccc384ea35823fb2f8b225c83e6dc8.tar.gz
perlweeklychallenge-club-3ae846f978ccc384ea35823fb2f8b225c83e6dc8.tar.bz2
perlweeklychallenge-club-3ae846f978ccc384ea35823fb2f8b225c83e6dc8.zip
- Added solutions by Ulrich Rieke.
-rw-r--r--challenge-172/ulrich-rieke/cpp/ch-2.cpp63
-rw-r--r--challenge-172/ulrich-rieke/haskell/ch-1.hs32
-rw-r--r--challenge-172/ulrich-rieke/haskell/ch-2.hs48
-rw-r--r--challenge-172/ulrich-rieke/perl/ch-1.pl41
-rw-r--r--challenge-172/ulrich-rieke/perl/ch-2.pl53
-rw-r--r--challenge-172/ulrich-rieke/raku/ch-1.raku17
-rw-r--r--challenge-172/ulrich-rieke/raku/ch-2.raku49
-rw-r--r--stats/pwc-current.json133
-rw-r--r--stats/pwc-language-breakdown-summary.json54
-rw-r--r--stats/pwc-language-breakdown.json1148
-rw-r--r--stats/pwc-leaders.json742
-rw-r--r--stats/pwc-summary-1-30.json24
-rw-r--r--stats/pwc-summary-121-150.json26
-rw-r--r--stats/pwc-summary-151-180.json36
-rw-r--r--stats/pwc-summary-181-210.json112
-rw-r--r--stats/pwc-summary-211-240.json104
-rw-r--r--stats/pwc-summary-241-270.json32
-rw-r--r--stats/pwc-summary-31-60.json30
-rw-r--r--stats/pwc-summary-61-90.json108
-rw-r--r--stats/pwc-summary-91-120.json34
-rw-r--r--stats/pwc-summary.json576
21 files changed, 1892 insertions, 1570 deletions
diff --git a/challenge-172/ulrich-rieke/cpp/ch-2.cpp b/challenge-172/ulrich-rieke/cpp/ch-2.cpp
new file mode 100644
index 0000000000..f1ec897f9e
--- /dev/null
+++ b/challenge-172/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,63 @@
+#include <vector>
+#include <iostream>
+#include <algorithm>
+#include <string>
+
+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 ;
+}
+
+double findMedian( const std::vector<int> & numbers ) {
+ int size = numbers.size( ) ;
+ if ( size % 2 == 0 ) {
+ return static_cast<double>( numbers[size / 2 - 1] + numbers[size / 2] ) / 2 ;
+ }
+ else
+ return static_cast<double>( numbers[ size / 2 ] ) ;
+}
+
+int main( ) {
+ std::cout << "Please enter an array of integers, blank to separate!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ std::vector<std::string> numbers { split( line , " " ) } ;
+ while ( numbers.size( ) < 5 ) {
+ std::cout << "At least 5 numbers should be entered!\n" ;
+ std::getline( std::cin , line ) ;
+ numbers = split( line , " " ) ;
+ }
+ std::vector<int> nums ( numbers.size( ) ) ;
+ int size = numbers.size( ) ;
+ std::transform( numbers.begin( ) , numbers.end( ) , nums.begin( ) ,
+ []( auto & s ) { return std::stoi( s ) ; } ) ;
+ std::sort( nums.begin( ) , nums.end( ) ) ;
+ std::cout << std::endl ;
+ std::cout << "Minimum : " << nums[0] << std::endl ;
+ std::cout << "Median : " << findMedian( nums ) << std::endl ;
+ std::vector<int> firstHalf ;
+ std::vector<int> secondHalf ;
+ if ( size % 2 == 0 ) {
+ for ( auto it = nums.begin( ) ; it != nums.begin( ) + size / 2 ; ++it )
+ firstHalf.push_back( *it ) ;
+ for ( auto it = nums.begin( ) + size / 2 ; it != nums.end( ) ; ++it )
+ secondHalf.push_back( *it ) ;
+ }
+ else {
+ for ( auto it = nums.begin( ) ; it != nums.begin( ) + size / 2 + 1 ; ++it )
+ firstHalf.push_back( *it ) ;
+ for ( auto it = nums.begin( ) + size / 2 + 1 ; it != nums.end( ) ; ++it )
+ secondHalf.push_back( *it ) ;
+ }
+ std::cout << "First quartile : " << findMedian( firstHalf ) << std::endl ;
+ std::cout << "Third quartile : " << findMedian( secondHalf ) << std::endl ;
+ std::cout << "Maximum : " << nums.back( ) << std::endl ;
+ return 0 ;
+}
diff --git a/challenge-172/ulrich-rieke/haskell/ch-1.hs b/challenge-172/ulrich-rieke/haskell/ch-1.hs
new file mode 100644
index 0000000000..e7540b6a34
--- /dev/null
+++ b/challenge-172/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,32 @@
+module Challenge172
+ where
+import Data.List ( subsequences , (!!))
+import Data.List.Split( splitOn )
+
+isPrime :: Int -> Bool
+isPrime n
+ |n == 2 = True
+ |n == 1 = False
+ |otherwise = null $ filter (\i -> mod n i == 0 ) [2 .. root]
+ where
+ root :: Int
+ root = floor $ sqrt $ fromIntegral n
+
+askForInput :: IO ( Int , Int )
+askForInput = do
+ putStrLn "Please enter 2 numbers, the first being greater than the second!"
+ numbers <- getLine
+ let nums = map read $ splitOn " " numbers
+ if (nums !! 0) > (nums !! 1 )
+ then return ( nums !! 0 , nums !! 1 )
+ else do
+ askForInput
+
+findLists :: Int -> Int -> [[Int]]
+findLists m n = filter ( (== m ) .sum ) $ filter ( (== n ) . length ) $ subsequences
+$ filter isPrime [2 .. m]
+
+main :: IO ( )
+main = do
+ numbers <- askForInput
+ print $ findLists ( fst numbers ) ( snd numbers )
diff --git a/challenge-172/ulrich-rieke/haskell/ch-2.hs b/challenge-172/ulrich-rieke/haskell/ch-2.hs
new file mode 100644
index 0000000000..121d6c2a43
--- /dev/null
+++ b/challenge-172/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,48 @@
+module Challenge172_2
+ where
+import Data.List( sort , (!!) )
+import Data.List.Split ( splitOn )
+
+findMedian :: [Double] -> Double
+findMedian list
+ |even len = ((sorted !! ( div len 2 - 1 )) + ( sorted !! ( div len 2 ) )) / 2
+ |odd len = sorted !! ( div len 2 )
+ where
+ len = length list
+ sorted = sort list
+
+firstQuartile :: [Double] -> Double
+firstQuartile list
+ |even len = findMedian $ take ( div len 2 ) sorted
+ |otherwise = findMedian $ take ( div len 2 + 1 ) sorted
+ where
+ len = length list
+ sorted = sort list
+
+thirdQuartile :: [Double] -> Double
+thirdQuartile list
+ |even len = findMedian $ drop ( div len 2 ) sorted
+ |otherwise = findMedian $ drop ( div len 2 ) sorted
+ where
+ len = length list
+ sorted = sort list
+
+askForInput :: IO [Double]
+askForInput = do
+ putStrLn "Enter at least 5 numbers separated by blanks!" ;
+ nums <- getLine ;
+ let numbers = map read $ splitOn " " nums
+ if length numbers >= 5
+ then return numbers
+ else do
+ askForInput
+
+main :: IO ( )
+main = do
+ numbers <- askForInput
+ let sorted = sort numbers
+ putStrLn ("Minimum : " ++ ( show $ minimum sorted ))
+ putStrLn ("Median : " ++ ( show $ findMedian sorted ))
+ putStrLn ("First Quartile : " ++ ( show $ firstQuartile sorted ))
+ putStrLn ("Third Quartile : " ++ ( show $ thirdQuartile sorted ))
+ putStrLn ("Maximum : " ++ ( show $ maximum sorted ))
diff --git a/challenge-172/ulrich-rieke/perl/ch-1.pl b/challenge-172/ulrich-rieke/perl/ch-1.pl
new file mode 100644
index 0000000000..92cab3a936
--- /dev/null
+++ b/challenge-172/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,41 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use Algorithm::Combinatorics qw ( combinations ) ;
+use List::Util qw ( sum ) ;
+use POSIX ;
+
+sub isPrime {
+ my $number = shift ;
+ my $stop = sqrt( $number ) ;
+ for my $i ( 2 .. floor( $stop )) {
+ if ( $number % $i == 0 ) {
+ return 0 ;
+ }
+ }
+ return 1 ;
+}
+
+say "Enter 2 numbers m and n , separated by blank( m should be greater than n!)!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my ($m , $n ) = split( /\s+/ , $line ) ;
+while ( $n > $m ) {
+ say "Second number should be smaller than the first one! Re-enter!" ;
+ $line = <STDIN> ;
+ chomp $line ;
+ ($m , $n ) = split( /\s+/ , $line ) ;
+}
+my @primes ;
+for my $i (2 .. $m) {
+ if ( isPrime( $i ) ) {
+ push @primes , $i ;
+ }
+}
+my $iter = combinations( \@primes , $n ) ;
+while ( my $c = $iter->next ) {
+ if ( sum( @$c ) == $m ) {
+ say join (',' , @$c ) ;
+ }
+}
diff --git a/challenge-172/ulrich-rieke/perl/ch-2.pl b/challenge-172/ulrich-rieke/perl/ch-2.pl
new file mode 100644
index 0000000000..820c30e9de
--- /dev/null
+++ b/challenge-172/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,53 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use POSIX ;
+
+sub findMedian {
+ my $array = shift ;
+ my $median ;
+ my $size = scalar( @$array ) ;
+ if ( $size == 2 ) {
+ $median = ( $array->[0] + $array->[1] ) / 2 ;
+ }
+ if ( $size % 2 == 0 && $size > 2 ) {
+ $median = ( $array->[ floor( $size / 2 ) - 1 ] +
+ $array->[ floor( $size / 2 )]) / 2 ;
+ }
+ if ( $size % 2 != 0 ) {
+ $median = $array->[ floor( $size / 2 ) ] ;
+ }
+ return $median ;
+}
+
+say "Enter a list of numbers, separated by a blank, at least 5 !" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @numbers = split( /\s+/ , $line ) ;
+while ( scalar( @numbers ) < 5 ) {
+ say "There should be 5 numbers at least, separated by a blank!" ;
+ $line = <STDIN> ;
+ chomp $line ;
+ @numbers = split( /\s+/ , $line ) ;
+}
+my $size = scalar( @numbers ) ;
+my @sorted = sort { $a <=> $b } @numbers ;
+say "Minimum is $sorted[0]!" ;
+my $median = findMedian( \@sorted ) ;
+say "Median is $median!" ;
+my @slice ;
+my @secondSlice ;
+if ( $size % 2 == 0 ) {
+ @slice = @sorted[0 .. $size / 2 - 1] ;
+ @secondSlice = @sorted[ $size / 2 .. $size - 1] ;
+}
+else {
+ @slice = @sorted[0 .. floor( $size / 2 )] ;
+ @secondSlice = @sorted[floor( $size / 2 ) .. $size - 1 ] ;
+}
+my $firstQuartile = findMedian( \@slice ) ;
+say "First quartile is $firstQuartile!" ;
+my $thirdQuartile = findMedian( \@secondSlice ) ;
+say "Third quartile is $thirdQuartile!" ;
+say "Maximum is $sorted[-1]!" ;
diff --git a/challenge-172/ulrich-rieke/raku/ch-1.raku b/challenge-172/ulrich-rieke/raku/ch-1.raku
new file mode 100644
index 0000000000..1733d763c7
--- /dev/null
+++ b/challenge-172/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,17 @@
+use v6 ;
+
+say "Enter 2 numbers , separated by blanks!" ;
+my $line = $*IN.get ;
+my ($m , $n ) = $line.split( /\s+/ ).map( {.Int} ) ;
+while ( $n > $m ) {
+ say "The second number should be smaller than the first one! Re-enter!" ;
+ $line = $*IN.get ;
+ ($m , $n ) = $line.split( /\s+/ ).map( {.Int} ) ;
+}
+my @primes ;
+for (2 .. $m) -> $i {
+ if ( $i.is-prime ) {
+ @primes.push( $i ) ;
+ }
+}
+say @primes.combinations( $n ).grep( {@_.sum == $m} ) ;
diff --git a/challenge-172/ulrich-rieke/raku/ch-2.raku b/challenge-172/ulrich-rieke/raku/ch-2.raku
new file mode 100644
index 0000000000..f6a4669f87
--- /dev/null
+++ b/challenge-172/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,49 @@
+use v6 ;
+
+sub findMedian( @array ) {# provided @array is sorted
+ my $median ;
+ my $size = @array.elems ;
+ if ( $size == 2 ) {
+ $median = (@array[0] + @array[1]) / 2 ;
+ }
+ if ( $size %% 2 && $size > 2 ) {
+ $median = (@array[ ($size div 2) - 1 ] + @array[ $size div 2 ]) / 2 ;
+ }
+ if ( not ( $size %% 2 ) ) {
+ $median = @array[ $size div 2 ] ;
+ }
+ return $median ;
+}
+
+say "Please enter an array of numbers, separated by blanks( more than 3 numbers! )" ;
+my $line = $*IN.get ;
+my @numbers = $line.split( /\s+/ ) ;
+while ( @numbers.elems <= 3 ) {
+ say "Please enter more than 3 numbers!" ;
+ $line = $*IN.get ;
+ @numbers = $line.split( /\s+/ ) ;
+}
+my @sorted = @numbers.sort( { $^a <=> $^b } ) ;
+my $size = @sorted.elems ;
+say "Minimum is { @sorted[0] }!" ;
+say "Median is { findMedian( @sorted ) }!" ;
+#I compute the first and third quartile by finding the median of the first
+#and second half. If the number of elements in the array is odd there are
+#different methods of computing the medians of the 2 halves. I arbitrarily
+#choose the method of doubling the median and adding the median to both the
+#lower and upper half of the array
+print "First quartile is " ;
+if ( $size %% 2 ) {
+ say "{ findMedian(@sorted[0 .. ($size div 2) - 1]) }!" ;
+}
+else {
+ say "{ findMedian( @sorted[0 .. $size div 2]) }!" ;
+}
+print "Third quartile is " ;
+if ( $size %% 2 ) {
+ say "{ findMedian( @sorted[ $size div 2 .. $size - 1 ] ) }!" ;
+}
+else {
+ say "{ findMedian( @sorted[ $size div 2 .. $size - 1 ] ) }!" ;
+}
+say "Maximum is @sorted[ *-1 ]!" ;
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index a8cea62c61..315c0cdbde 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,18 +1,28 @@
{
+ "subtitle" : {
+ "text" : "[Champions: 11] Last updated at 2022-07-06 20:08:53 GMT"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 172"
+ },
"drilldown" : {
"series" : [
{
+ "name" : "Kjetil Skotheim",
"data" : [
[
"Perl",
2
]
],
- "name" : "Kjetil Skotheim",
"id" : "Kjetil Skotheim"
},
{
"name" : "Laurent Rosenfeld",
+ "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -26,21 +36,19 @@
"Blog",
1
]
- ],
- "id" : "Laurent Rosenfeld"
+ ]
},
{
- "id" : "Mark Anderson",
+ "name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
],
- "name" : "Mark Anderson"
+ "id" : "Mark Anderson"
},
{
- "id" : "Mohammad S Anwar",
"name" : "Mohammad S Anwar",
"data" : [
[
@@ -51,31 +59,30 @@
"Raku",
1
]
- ]
+ ],
+ "id" : "Mohammad S Anwar"
},
{
- "id" : "Philippe Bricout",
"data" : [
[
"Perl",
1
]
],
+ "id" : "Philippe Bricout",
"name" : "Philippe Bricout"
},
{
+ "name" : "PokGoPun",
"data" : [
[
"Perl",
2
]
],
- "name" : "PokGoPun",
"id" : "PokGoPun"
},
{
- "id" : "Robert DiCicco",
- "name" : "Robert DiCicco",
"data" : [
[
"Perl",
@@ -85,10 +92,11 @@
"Raku",
2
]
- ]
+ ],
+ "id" : "Robert DiCicco",
+ "name" : "Robert DiCicco"
},
{
- "id" : "Roger Bell_West",
"name" : "Roger Bell_West",
"data" : [
[
@@ -99,10 +107,25 @@
"Raku",
2
]
- ]
+ ],
+ "id" : "Roger Bell_West"
+ },
+ {
+ "id" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "name" : "Ulrich Rieke"
},
{
- "name" : "W. Luis Mochan",
+ "id" : "W. Luis Mochan",
"data" : [
[
"Perl",
@@ -113,43 +136,30 @@
1
]
],
- "id" : "W. Luis Mochan"
+ "name" : "W. Luis Mochan"
},
{
- "name" : "Walt Mankowski",
"data" : [
[
"Perl",
2
]
],
- "id" : "Walt Mankowski"
+ "id" : "Walt Mankowski",
+ "name" : "Walt Mankowski"
}
]
},
- "title" : {
- "text" : "The Weekly Challenge - 172"
- },
- "xAxis" : {
- "type" : "category"
- },
- "legend" : {
- "enabled" : 0
- },
"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,
- "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/>"
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
+ "chart" : {
+ "type" : "column"
},
"series" : [
{
- "name" : "The Weekly Challenge - 172",
- "colorByPoint" : 1,
"data" : [
{
"drilldown" : "Kjetil Skotheim",
@@ -157,34 +167,34 @@
"name" : "Kjetil Skotheim"
},
{
- "drilldown" : "Laurent Rosenfeld",
"name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld",
"y" : 5
},
{
- "drilldown" : "Mark Anderson",
"name" : "Mark Anderson",
- "y" : 2
+ "y" : 2,
+ "drilldown" : "Mark Anderson"
},
{
- "name" : "Mohammad S Anwar",
+ "drilldown" : "Mohammad S Anwar",
"y" : 2,
- "drilldown" : "Mohammad S Anwar"
+ "name" : "Mohammad S Anwar"
},
{
"name" : "Philippe Bricout",
- "y" : 1,
- "drilldown" : "Philippe Bricout"
+ "drilldown" : "Philippe Bricout",
+ "y" : 1
},
{
- "y" : 2,
"name" : "PokGoPun",
- "drilldown" : "PokGoPun"
+ "drilldown" : "PokGoPun",
+ "y" : 2
},
{
- "drilldown" : "Robert DiCicco",
"name" : "Robert DiCicco",
- "y" : 4
+ "y" : 4,
+ "drilldown" : "Robert DiCicco"
},
{
"name" : "Roger Bell_West",
@@ -192,31 +202,40 @@
"drilldown" : "Roger Bell_West"
},
{
- "y" : 3,
+ "name" : "Ulrich Rieke",
+ "drilldown" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
"name" : "W. Luis Mochan",
+ "y" : 3,
"drilldown" : "W. Luis Mochan"
},
{
"drilldown" : "Walt Mankowski",
- "name" : "Walt Mankowski",
- "y" : 2
+ "y" : 2,
+ "name" : "Walt Mankowski"
}
- ]
+ ],
+ "colorByPoint" : 1,
+ "name" : "The Weekly Challenge - 172"
}
],
- "subtitle" : {
- "text" : "[Champions: 10] Last updated at 2022-07-06 19:55:42 GMT"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "legend" : {
+ "enabled" : 0
},
"plotOptions" : {
"series" : {
+ "borderWidth" : 0,
"dataLabels" : {
"format" : "{point.y}",
"enabled" : 1
- },
- "borderWidth" : 0
+ }
}
- },
- "chart" : {
- "type" : "column"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index b95536e822..78ca61e761 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,41 +1,39 @@
{
- "legend" : {
- "enabled" : "false"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
"xAxis" : {
+ "type" : "category",
"labels" : {
"style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
}
- },
- "type" : "category"
+ }
},
"title" : {
"text" : "The Weekly Challenge Contributions [2019 - 2022]"
},
- "chart" : {
- "type" : "column"
- },
"subtitle" : {
- "text" : "Last updated at 2022-07-06 19:55:42 GMT"
+ "text" : "Last updated at 2022-07-06 20:08:53 GMT"
+ },
+ "yAxis" : {
+ "min" : 0,
+ "title" : {
+ "text" : null
+ }
},
"series" : [
{
+ "name" : "Contributions",
"dataLabels" : {
+ "align" : "right",
"enabled" : "true",
- "format" : "{point.y:.0f}",
- "y" : 10,
"color" : "#FFFFFF",
- "align" : "right",
"rotation" : -90,
"style" : {
"fontSize" : "13px",
"fontFamily" : "Verdana, sans-serif"
- }
+ },
+ "format" : "{point.y:.0f}",
+ "y" : 10
},
"data" : [
[
@@ -44,20 +42,22 @@
],
[
"Perl",
- 8365
+ 8367
],
[
"Raku",
- 4971
+ 4973
]
- ],
- "name" : "Contributions"
+ ]
}
],
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
+ "legend" : {
+ "enabled" : "false"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
+ "chart" : {
+ "type" : "column"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index c9be78223c..10b8e8efc6 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,22 +1,34 @@
{
+ "tooltip" : {
+ "followPointer" : "true",
+ "headerFormat" : "<span style=\"font-size:11px\"></span>",
+ "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
"series" : [
{
- "name" : "The Weekly Challenge Languages",
"data" : [
{
"y" : 161,
- "name" : "#001",
- "drilldown" : "001"
+ "drilldown" : "001",
+ "name" : "#001"
},
{
+ "y" : 125,
"drilldown" : "002",
- "name" : "#002",
- "y" : 125
+ "name" : "#002"
},
{
- "y" : 83,
"name" : "#003",
- "drilldown" : "003"
+ "drilldown" : "003",
+ "y" : 83
},
{
"name" : "#004",
@@ -29,13 +41,13 @@
"name" : "#005"
},
{
- "drilldown" : "006",
"name" : "#006",
- "y" : 58
+ "y" : 58,
+ "drilldown" : "006"
},
{
- "drilldown" : "007",
"name" : "#007",
+ "drilldown" : "007",
"y" : 65
},
{
@@ -44,39 +56,39 @@
"name" : "#008"
},
{
- "drilldown" : "009",
"y" : 76,
+ "drilldown" : "009",
"name" : "#009"
},
{
- "y" : 65,
"name" : "#010",
+ "y" : 65,
"drilldown" : "010"
},
{
"drilldown" : "011",
- "name" : "#011",
- "y" : 85
+ "y" : 85,
+ "name" : "#011"
},
{
- "name" : "#012",
+ "drilldown" : "012",
"y" : 89,
- "drilldown" : "012"
+ "name" : "#012"
},
{
- "drilldown" : "013",
"y" : 85,
+ "drilldown" : "013",
"name" : "#013"
},
{
+ "y" : 101,
"drilldown" : "014",
- "name" : "#014",
- "y" : 101
+ "name" : "#014"
},
{
- "drilldown" : "015",
"name" : "#015",
- "y" : 99
+ "y" : 99,
+ "drilldown" : "015"
},
{
"name" : "#016",
@@ -84,104 +96,104 @@
"drilldown" : "016"
},
{
+ "drilldown" : "017",
"y" : 84,
- "name" : "#017",
- "drilldown" : "017"
+ "name" : "#017"
},
{
- "drilldown" : "018",
"y" : 81,
+ "drilldown" : "018",
"name" : "#018"
},
{
- "y" : 103,
"name" : "#019",
+ "y" : 103,
"drilldown" : "019"
},
{
"name" : "#020",
- "y" : 101,
- "drilldown" : "020"
+ "drilldown" : "020",
+ "y" : 101
},
{
- "name" : "#021",
+ "drilldown" : "021",
"y" : 72,
- "drilldown" : "021"
+ "name" : "#021"
},
{
- "drilldown" : "022",
"name" : "#022",
+ "drilldown" : "022",
"y" : 68
},
{
- "y" : 97,
"name" : "#023",
+ "y" : 97,
"drilldown" : "023"
},
{
"name" : "#024",
- "y" : 75,
- "drilldown" : "024"
+ "drilldown" : "024",
+ "y" : 75
},
{
+ "name" : "#025",
"drilldown" : "025",
- "y" : 59,
- "name" : "#025"
+ "y" : 59
},
{
- "y" : 74,
"name" : "#026",
+ "y" : 74,
"drilldown" : "026"
},
{
- "name" : "#027",
"y" : 62,
- "drilldown" : "027"
+ "drilldown" : "027",
+ "name" : "#027"
},
{
"name" : "#028",
- "y" : 82,
- "drilldown" : "028"
+ "drilldown" : "028",
+ "y" : 82
},
{
- "name" : "#029",
"y" : 81,
- "drilldown" : "029"
+ "drilldown" : "029",
+ "name" : "#029"
},
{
- "y" : 119,
"name" : "#030",
- "drilldown" : "030"
+ "drilldown" : "030",
+ "y" : 119
},
{
+ "y" : 91,
"drilldown" : "031",
- "name" : "#031",
- "y" : 91
+ "name" : "#031"
},
{
- "y" : 96,
"name" : "#032",
+ "y" : 96,
"drilldown" : "032"
},
{
+ "name" : "#033",
"drilldown" : "033",
- "y" : 112,
- "name" : "#033"
+ "y" : 112
},
{
+ "y" : 66,
"drilldown" : "034",
- "name" : "#034",
- "y" : 66
+ "name" : "#034"
},
{
+ "name" : "#035",