aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-09-12 15:14:05 +0100
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-09-12 15:14:05 +0100
commiteb98e39e73f94883aa8975576dcf1bd7b30db182 (patch)
tree795f7f1abf923c3a27a58b39ae12c1f757e5e9b7
parent1a35295d8345ec48b29dac02a59257ae5f267965 (diff)
downloadperlweeklychallenge-club-eb98e39e73f94883aa8975576dcf1bd7b30db182.tar.gz
perlweeklychallenge-club-eb98e39e73f94883aa8975576dcf1bd7b30db182.tar.bz2
perlweeklychallenge-club-eb98e39e73f94883aa8975576dcf1bd7b30db182.zip
- Added solutions by Ulrich Rieke.
-rwxr-xr-xchallenge-286/ulrich-rieke/cpp/ch-1.cpp43
-rwxr-xr-xchallenge-286/ulrich-rieke/cpp/ch-2.cpp49
-rwxr-xr-xchallenge-286/ulrich-rieke/haskell/ch-1.hs17
-rwxr-xr-xchallenge-286/ulrich-rieke/haskell/ch-2.hs17
-rwxr-xr-xchallenge-286/ulrich-rieke/perl/ch-1.pl20
-rwxr-xr-xchallenge-286/ulrich-rieke/perl/ch-2.pl29
-rwxr-xr-xchallenge-286/ulrich-rieke/raku/ch-1.raku5
-rwxr-xr-xchallenge-286/ulrich-rieke/raku/ch-2.raku23
-rwxr-xr-xchallenge-286/ulrich-rieke/rust/ch-1.rs25
-rwxr-xr-xchallenge-286/ulrich-rieke/rust/ch-2.rs30
-rw-r--r--stats/pwc-current.json201
-rw-r--r--stats/pwc-language-breakdown-2019.json330
-rw-r--r--stats/pwc-language-breakdown-2020.json382
-rw-r--r--stats/pwc-language-breakdown-2021.json758
-rw-r--r--stats/pwc-language-breakdown-2022.json712
-rw-r--r--stats/pwc-language-breakdown-2023.json422
-rw-r--r--stats/pwc-language-breakdown-2024.json304
-rw-r--r--stats/pwc-language-breakdown-summary.json54
-rw-r--r--stats/pwc-leaders.json750
-rw-r--r--stats/pwc-summary-1-30.json104
-rw-r--r--stats/pwc-summary-121-150.json90
-rw-r--r--stats/pwc-summary-151-180.json88
-rw-r--r--stats/pwc-summary-181-210.json102
-rw-r--r--stats/pwc-summary-211-240.json110
-rw-r--r--stats/pwc-summary-241-270.json114
-rw-r--r--stats/pwc-summary-271-300.json106
-rw-r--r--stats/pwc-summary-301-330.json94
-rw-r--r--stats/pwc-summary-31-60.json108
-rw-r--r--stats/pwc-summary-61-90.json120
-rw-r--r--stats/pwc-summary-91-120.json130
-rw-r--r--stats/pwc-summary.json48
-rw-r--r--stats/pwc-yearly-language-summary.json146
32 files changed, 2906 insertions, 2625 deletions
diff --git a/challenge-286/ulrich-rieke/cpp/ch-1.cpp b/challenge-286/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..7bc70c9a1c
--- /dev/null
+++ b/challenge-286/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,43 @@
+#include <vector>
+#include <string>
+#include <sstream>
+#include <fstream>
+#include <random>
+#include <iostream>
+
+std::vector<std::string> split( const std::string & text ,
+ const char delimiter ) {
+ std::istringstream istr { text } ;
+ std::vector<std::string> tokens ;
+ std::string word ;
+ while ( std::getline( istr , word , delimiter ) ) {
+ if ( word.length( ) > 0 ) {
+ tokens.push_back( word ) ;
+ }
+ }
+ return tokens ;
+}
+
+int main( ) {
+ std::ifstream infile( "challenge286.cpp" ) ;
+ std::vector<std::string> allWords ;
+ if ( infile.is_open( ) ) {
+ std::string line ;
+ while ( infile ) {
+ std::getline( infile , line ) ;
+ if ( ! line.empty( ) ) {
+ std::vector<std::string> tokens { split( line , ' ' ) } ;
+ for ( auto s : tokens )
+ allWords.push_back( s ) ;
+ }
+ }
+ }
+ infile.close( ) ;
+ int len = allWords.size( ) ;
+ std::random_device rd ;
+ std::mt19937 gen( rd( ) ) ;
+ std::uniform_int_distribution<> distri(0 , len - 1 ) ;
+ int pos = distri( gen ) ;
+ std::cout << allWords[pos] << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-286/ulrich-rieke/cpp/ch-2.cpp b/challenge-286/ulrich-rieke/cpp/ch-2.cpp
new file mode 100755
index 0000000000..7b1579b314
--- /dev/null
+++ b/challenge-286/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,49 @@
+#include <iostream>
+#include <vector>
+#include <sstream>
+#include <utility>
+#include <numeric>
+
+//routine for splitting a string at a given delimiter
+std::vector<std::string> split( const std::string & text , const 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 main( ) {
+ std::cout << "Enter 2 ^ n integers, where n is a positive integer!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ auto tokens = split( line , ' ' ) ;
+ std::vector<int> numbers ;
+ for ( auto s : tokens )
+ numbers.push_back( std::stoi( s ) ) ;
+ bool last_was_min = false ;//did we determine the minimum last time ?
+ while ( numbers.size( ) > 1 ) {
+ std::vector<std::pair<int , int>> allPairs ;// all neighbouring pairs
+ for ( int i = 0 ; i < numbers.size( ) - 1 ; i += 2 ) {
+ allPairs.push_back( std::make_pair( numbers[i] , numbers[i + 1] )) ;
+ }
+ std::vector<int> intermediate ; //for the minima and maxima
+ for ( auto it = allPairs.begin( ) ; it != allPairs.end( ) ; it++ ) {
+ if ( last_was_min ) {
+ intermediate.push_back( std::max( it->first , it->second ) ) ;
+ last_was_min = false ; //toggle the boolean value
+ }
+ else {
+ intermediate.push_back( std::min( it->first , it->second ) ) ;
+ last_was_min = true ;
+ }
+ }
+ numbers = intermediate ;
+ intermediate.clear( ) ;
+ }
+ std::cout << *numbers.begin( ) << '\n' ;
+ return 0 ;
+}
diff --git a/challenge-286/ulrich-rieke/haskell/ch-1.hs b/challenge-286/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..a24d918173
--- /dev/null
+++ b/challenge-286/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,17 @@
+module Challenge286
+ where
+import System.Random
+import Data.List ( (!!) )
+
+pickWord :: [String] -> String
+pickWord words = words !! pos
+ where
+ gen = mkStdGen 137
+ pos = fst $ uniformR ( 0 :: Int , length words - 1 :: Int ) gen
+
+main :: IO ( )
+main = do
+ allLines <- readFile "Challenge286.hs"
+ let allTheWords = words allLines
+ relevantWords = filter ( not . null ) allTheWords
+ print $ pickWord relevantWords
diff --git a/challenge-286/ulrich-rieke/haskell/ch-2.hs b/challenge-286/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..db350ca355
--- /dev/null
+++ b/challenge-286/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,17 @@
+module Challenge286_2
+ where
+import Data.List.Split ( chunksOf ) ;
+
+solution :: [Int] -> Int
+solution list = head $ until ( (== 1 ) . length ) step list
+ where
+ step :: [Int] -> [Int]
+ step someList = map (\p -> if (fst p ) then min ( head $ snd p ) ( last $ snd
+ p ) else max ( head $ snd p ) ( last $ snd p ) ) $ zip ( cycle [True ,
+ False] ) (chunksOf 2 someList)
+
+main :: IO ( )
+main = do
+ putStrLn "Enter 2 ^ n integers where n is a positive integer!"
+ numberstrings <- getLine
+ print $ solution $ map read $ words numberstrings
diff --git a/challenge-286/ulrich-rieke/perl/ch-1.pl b/challenge-286/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..aeba026e89
--- /dev/null
+++ b/challenge-286/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,20 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+my @allWords ;
+my $fh ;
+open ( $fh , "< Challenge286.pl") or die "can't open file!" ;
+my @lines = <$fh> ;
+close( $fh ) ;
+for my $line( @lines ) {
+ if ( $line ) {
+ my @words = split( /\s+/ , $line ) ;
+ map { push( @allWords , $_ ) } @words ;
+ }
+}
+my $len = scalar( @allWords ) ;
+srand( time( )) ;
+my $pos = int( rand( $len ) ) ;
+say $allWords[ $pos ] ;
diff --git a/challenge-286/ulrich-rieke/perl/ch-2.pl b/challenge-286/ulrich-rieke/perl/ch-2.pl
new file mode 100755
index 0000000000..8ba8400e06
--- /dev/null
+++ b/challenge-286/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( pairs min max ) ;
+
+say "Enter 2 ^ n integers , where n is a positive integer!" ;
+my $line = <STDIN> ;
+chomp $line ;
+#I do no input checking here...
+my @numbers = split( /\s+/ , $line ) ;
+my $last_was_min = 0 ;#did we determine the minimum last time, if not , 0!
+while ( scalar( @numbers ) > 1 ) {
+ my @pairs = pairs( @numbers ) ;
+ my @intermediate ; #for the minima and maxima
+ for my $pair ( @pairs ) {
+ if ( $last_was_min ) { #we now have to find the maximum
+ push( @intermediate , max( @$pair ) ) ;
+ $last_was_min = 0 ; #toggle the boolean value
+ }
+ else { #the other way round
+ push( @intermediate , min( @$pair ) ) ;
+ $last_was_min = 1 ;
+ }
+ }
+ @numbers = @intermediate ;
+ @intermediate = ( ) ;
+}
+say $numbers[0] ;
diff --git a/challenge-286/ulrich-rieke/raku/ch-1.raku b/challenge-286/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..ca150d9b41
--- /dev/null
+++ b/challenge-286/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,5 @@
+use v6 ;
+
+my $code = "Challenge286.raku".IO.slurp ;
+my @words = $code.words ;
+say @words.pick ;
diff --git a/challenge-286/ulrich-rieke/raku/ch-2.raku b/challenge-286/ulrich-rieke/raku/ch-2.raku
new file mode 100755
index 0000000000..ba7c8122d2
--- /dev/null
+++ b/challenge-286/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,23 @@
+use v6 ;
+
+say "Enter 2 ^ n many integers, where n is a positive integer!" ;
+my $line = $*IN.get ;
+my @numbers = $line.words.map( {.Int} ) ;
+my $last_was_min = False ; #did we determine the minimum last time ?
+while ( @numbers.elems > 1 ) {
+ my @pairs = @numbers.rotor( 2 ) ;
+ my @intermediate ; #for the minima and maxima of neighbouring pairs
+ for @pairs -> $pair {
+ if ( $last_was_min ) { #we must find the maximum
+ @intermediate.push( $pair.max ) ;
+ $last_was_min = False ; #toggle the boolean value
+ }
+ else {
+ @intermediate.push( $pair.min ) ;
+ $last_was_min = True ;
+ }
+ }
+ @numbers = @intermediate ;
+ @intermediate = ( ) ;
+}
+say @numbers[0] ;
diff --git a/challenge-286/ulrich-rieke/rust/ch-1.rs b/challenge-286/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..2f8e025067
--- /dev/null
+++ b/challenge-286/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,25 @@
+use std::io::{self , BufRead , BufReader} ;
+use std::fs::File ;
+use rand ;
+
+fn main() -> io::Result<()>{
+ let path = "main.rs" ;
+ let source_file = File::open( path )? ;
+ let reader = BufReader::new( source_file ) ;
+ let mut all_words : Vec<String> = Vec::new( ) ;
+ for line in reader.lines( ) {
+ let codeline = line.unwrap( ) ;
+ if codeline.len( ) > 0 {
+ let codewords : &str = codeline.as_str( ) ;
+ codewords.split_whitespace( ).for_each( | s | {
+ let str = s.into( ) ;
+ all_words.push( str ) ;
+ } ) ;
+ }
+ }
+ let len = all_words.len( ) ;
+ let selected : u32 = rand::random::<u32>( ) ;
+ let select_pos : usize = (selected as usize) % len ;
+ println!("{:?}" , all_words[select_pos] ) ;
+ Ok(() )
+}
diff --git a/challenge-286/ulrich-rieke/rust/ch-2.rs b/challenge-286/ulrich-rieke/rust/ch-2.rs
new file mode 100755
index 0000000000..4c34f0c644
--- /dev/null
+++ b/challenge-286/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,30 @@
+use std::{io , cmp} ;
+
+fn main() {
+ println!("Enter an number of integers( there must be a 2 exponent of them!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_line : &str = inline.as_str( ).trim( ) ;
+ let mut numbers : Vec<u32> = entered_line.split_whitespace( ).map( |s|
+ s.parse::<u32>( ).unwrap( ) ).collect( ) ;
+ while numbers.len( ) > 1 {
+ let mut last_was_min : bool = false ;
+ let slice = &numbers[..] ;
+ let mut chu = slice.chunks( 2 ) ;
+ let mut intermediate : Vec<u32> = Vec::new( ) ;
+ while let Some( p ) = chu.next( ) {
+ if last_was_min {
+ let maxi = cmp::max( p[0] , p[1] ) ;
+ intermediate.push( maxi ) ;
+ last_was_min = false ;
+ }
+ else {
+ let mini = cmp::min( p[0] , p[1] ) ;
+ intermediate.push( mini ) ;
+ last_was_min = true ;
+ }
+ }
+ numbers = intermediate ;
+ }
+ println!("{}" , numbers[0] ) ;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index b98e26e793..37622400fb 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,46 +1,39 @@
{
- "title" : {
- "text" : "The Weekly Challenge - 286"
- },
- "plotOptions" : {
- "series" : {
- "borderWidth" : 0,
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- }
- }
- },
"legend" : {
"enabled" : 0
},
- "chart" : {
- "type" : "column"
+ "title" : {
+ "text" : "The Weekly Challenge - 286"
+ },
+ "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
},
"drilldown" : {
"series" : [
{
- "id" : "Alexander Karelas",
+ "name" : "Alexander Karelas",
"data" : [
[
"Perl",
1
]
],
- "name" : "Alexander Karelas"
+ "id" : "Alexander Karelas"
},
{
+ "id" : "Cheok-Yin Fung",
"data" : [
[
"Perl",
1
]
],
- "id" : "Cheok-Yin Fung",
"name" : "Cheok-Yin Fung"
},
{
- "name" : "David Ferrone",
+ "id" : "David Ferrone",
"data" : [
[
"Perl",
@@ -51,39 +44,40 @@
1
]
],
- "id" : "David Ferrone"
+ "name" : "David Ferrone"
},
{
+ "id" : "E. Choroba",
+ "name" : "E. Choroba",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "E. Choroba",
- "name" : "E. Choroba"
+ ]
},
{
- "name" : "Feng Chang",
+ "id" : "Feng Chang",
"data" : [
[
"Raku",
2
]
],
- "id" : "Feng Chang"
+ "name" : "Feng Chang"
},
{
+ "id" : "Kjetil Skotheim",
"name" : "Kjetil Skotheim",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Kjetil Skotheim"
+ ]
},
{
+ "name" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -98,22 +92,21 @@
2
]
],
- "id" : "Laurent Rosenfeld",
- "name" : "Laurent Rosenfeld"
+ "id" : "Laurent Rosenfeld"
},
{
- "id" : "Matthew Neleigh",
"data" : [
[
"Perl",
2
]
],
- "name" : "Matthew Neleigh"
+ "name" : "Matthew Neleigh",
+ "id" : "Matthew Neleigh"
},
{
- "name" : "Niels van Dijke",
"id" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
"data" : [
[
"Perl",
@@ -146,11 +139,10 @@
2
]
],
- "id" : "Paulo Custodio",
- "name" : "Paulo Custodio"
+ "name" : "Paulo Custodio",
+ "id" : "Paulo Custodio"
},
{
- "name" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -161,31 +153,35 @@
1
]
],
+ "name" : "Peter Campbell Smith",
"id" : "Peter Campbell Smith"
},
{
+ "id" : "Peter Meszaros",
+ "name" : "Peter Meszaros",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Peter Meszaros",
- "name" : "Peter Meszaros"
+ ]
},
{
+ "name" : "Peter Pentchev",
"data" : [
[
"Perl",
2
+ ],
+ [
+ "Blog",
+ 1
]
],
- "id" : "Peter Pentchev",
- "name" : "Peter Pentchev"
+ "id" : "Peter Pentchev"
},
{
"name" : "Robbie Hatley",
- "id" : "Robbie Hatley",
"data" : [
[
"Perl",
@@ -195,11 +191,10 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Robbie Hatley"
},
{
- "name" : "Roger Bell_West",
- "id" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -209,10 +204,11 @@
"Raku",
1
]
- ]
+ ],
+ "name" : "Roger Bell_West",
+ "id" : "Roger Bell_West"
},
{
- "name" : "Thomas Kohler",
"id" : "Thomas Kohler",
"data" : [
[
@@ -223,10 +219,10 @@
"Blog",
2
]
- ]
+ ],
+ "name" : "Thomas Kohler"
},
{
- "name" : "Torgny Lyon",
"id" : "Torgny Lyon",
"data" : [
[
@@ -237,9 +233,25 @@
"Blog",
1
]
+ ],
+ "name" : "Torgny Lyon"
+ },
+ {
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
]
},
{
+ "id" : "W. Luis Mochan",
"name" : "W. Luis Mochan",
"data" : [
[
@@ -250,23 +262,12 @@
"Blog",
1
]
- ],
- "id" : "W. Luis Mochan"
+ ]
}
]
},
"subtitle" : {
- "text" : "[Champions: 19] Last updated at 2024-09-11 16:31:49 GMT"
- },
- "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
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
+ "text" : "[Champions: 20] Last updated at 2024-09-12 14:13:36 GMT"
},
"series" : [
{
@@ -274,19 +275,19 @@
"name" : "The Weekly Challenge - 286",
"data" : [
{
- "name" : "Alexander Karelas",
"drilldown" : "Alexander Karelas",
+ "name" : "Alexander Karelas",
"y" : 1
},
{
"name" : "Cheok-Yin Fung",
- "drilldown" : "Cheok-Yin Fung",
- "y" : 1
+ "y" : 1,
+ "drilldown" : "Cheok-Yin Fung"
},
{
"drilldown" : "David Ferrone",
- "y" : 3,
- "name" : "David Ferrone"
+ "name" : "David Ferrone",
+ "y" : 3
},
{
"name" : "E. Choroba",
@@ -299,39 +300,39 @@
"drilldown" : "Feng Chang"
},
{
+ "name" : "Kjetil Skotheim",
"y" : 2,
- "drilldown" : "Kjetil Skotheim",
- "name" : "Kjetil Skotheim"
+ "drilldown" : "Kjetil Skotheim"
},
{
- "drilldown" : "Laurent Rosenfeld",
+ "name" : "Laurent Rosenfeld",
"y" : 6,
- "name" : "Laurent Rosenfeld"
+ "drilldown" : "Laurent Rosenfeld"
},
{
- "y" : 2,
"drilldown" : "Matthew Neleigh",
- "name" : "Matthew Neleigh"
+ "name" : "Matthew Neleigh",
+ "y" : 2
},
{
"y" : 2,
- "drilldown" : "Niels van Dijke",
- "name" : "Niels van Dijke"
+ "name" : "Niels van Dijke",
+ "drilldown" : "Niels van Dijke"
},
{
- "name" : "Packy Anderson",
"y" : 5,
+ "name" : "Packy Anderson",
"drilldown" : "Packy Anderson"
},
{
- "y" : 2,
"drilldown" : "Paulo Custodio",
- "name" : "Paulo Custodio"
+ "name" : "Paulo Custodio",
+ "y" : 2
},
{
+ "name" : "Peter Campbell Smith",
"y" : 3,
- "drilldown" : "Peter Campbell Smith",
- "name" : "Peter Campbell Smith"
+ "drilldown" : "Peter Campbell Smith"
},
{
"drilldown" : "Peter Meszaros",
@@ -340,38 +341,60 @@
},
{
"name" : "Peter Pentchev",
- "y" : 2,
+ "y" : 3,
"drilldown" : "Peter Pentchev"
},
{
- "drilldown" : "Robbie Hatley",
"y" : 3,
- "name" : "Robbie Hatley"
+ "name" : "Robbie Hatley",
+ "drilldown" : "Robbie Hatley"
},
{
"drilldown" : "Roger Bell_West",
- "y" : 2,
- "name" : "Roger Bell_West"
+ "name" : "Roger Bell_West",
+ "y" : 2
},
{
- "name" : "Thomas Kohler",
+ "drilldown" : "Thomas Kohler",
"y" : 4,
- "drilldown" : "Thomas Kohler"
+ "name" : "Thomas Kohler"
},
{
"y" : 3,
- "drilldown" : "Torgny Lyon",
- "name" : "Torgny Lyon"
+ "name" : "Torgny Lyon",
+ "drilldown" : "Torgny Lyon"
+ },
+ {
+ "y" : 4,
+ "name" : "Ulrich Rieke",
+ "drilldown" : "Ulrich Rieke"
},
{
"drilldown" : "W. Luis Mochan",
- "y" : 3,
- "name" : "W. Luis Mochan"
+ "name" : "W. Luis Mochan",
+ "y" : 3
}
]
}
],
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
+ },
"xAxis" : {
"type" : "category"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
}
}
diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json
index 676c06a8ce..cd11b07f77 100644
--- a/stats/pwc-language-breakdown-2019.json
+++ b/stats/pwc-language-breakdown-2019.json
@@ -1,65 +1,70 @@
{
- "xAxis" : {
- "type" : "category"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "chart" : {
+ "type" : "column"
},
"series" : [
{
- "colorByPoint" : "true",
"name" : "The Weekly Challenge Languages",
+ "colorByPoint" : "true",
"data" : [
{
- "name" : "041",
"drilldown" : "041",
+ "name" : "041",
"y" : 80
},
{
- "name" : "040",
"y" : 77,
+ "name" : "040",
"drilldown" : "040"
},
{
- "name" : "039",
"drilldown" : "039",
+ "name" : "039",
"y" : 68
},
{
- "y" : 74,
"drilldown" : "038",
- "name" : "038"
+ "name" : "038",
+ "y" : 74
},
{
- "name" : "037",
"drilldown" : "037",
+ "name" : "037",
"y" : 70
},
{
+ "name" : "036",
"y" : 70,
- "drilldown" : "036",
- "name" : "036"
+ "drilldown" : "036"
},
{
- "drilldown" : "035",
"y" : 68,
- "name" : "035"
+ "name" : "035",
+ "drilldown" : "035"
},
{
+ "drilldown" : "034",
"name" : "034",
- "y" : 70,
- "drilldown" : "034"
+ "y" : 70
},
{
- "y" : 113,
"drilldown" : "033",
+ "y" : 113,
"name" : "033"
},
{
"drilldown" : "032",
- "y" : 97,
- "name" : "032"
+ "name" : "032",
+ "y" : 97
},
{
- "name" : "031",
"y" : 93,
+ "name" : "031",
"drilldown" : "031"
},
{
@@ -68,79 +73,79 @@
"drilldown" : "030"