aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-305/ulrich-rieke/cpp/ch-1.cpp64
-rwxr-xr-xchallenge-305/ulrich-rieke/cpp/ch-2.cpp60
-rwxr-xr-xchallenge-305/ulrich-rieke/haskell/ch-1.hs29
-rwxr-xr-xchallenge-305/ulrich-rieke/haskell/ch-2.hs23
-rwxr-xr-xchallenge-305/ulrich-rieke/perl/ch-1.pl59
-rwxr-xr-xchallenge-305/ulrich-rieke/perl/ch-2.pl36
-rwxr-xr-xchallenge-305/ulrich-rieke/raku/ch-1.raku20
-rwxr-xr-xchallenge-305/ulrich-rieke/raku/ch-2.raku26
-rwxr-xr-xchallenge-305/ulrich-rieke/rust/ch-1.rs41
-rwxr-xr-xchallenge-305/ulrich-rieke/rust/ch-2.rs38
-rw-r--r--stats/pwc-current.json225
-rw-r--r--stats/pwc-language-breakdown-2019.json610
-rw-r--r--stats/pwc-language-breakdown-2020.json354
-rw-r--r--stats/pwc-language-breakdown-2021.json770
-rw-r--r--stats/pwc-language-breakdown-2022.json344
-rw-r--r--stats/pwc-language-breakdown-2023.json368
-rw-r--r--stats/pwc-language-breakdown-2024.json780
-rw-r--r--stats/pwc-language-breakdown-2025.json104
-rw-r--r--stats/pwc-language-breakdown-summary.json80
-rw-r--r--stats/pwc-leaders.json730
-rw-r--r--stats/pwc-summary-1-30.json96
-rw-r--r--stats/pwc-summary-121-150.json90
-rw-r--r--stats/pwc-summary-151-180.json48
-rw-r--r--stats/pwc-summary-181-210.json92
-rw-r--r--stats/pwc-summary-211-240.json38
-rw-r--r--stats/pwc-summary-241-270.json36
-rw-r--r--stats/pwc-summary-271-300.json102
-rw-r--r--stats/pwc-summary-301-330.json40
-rw-r--r--stats/pwc-summary-31-60.json40
-rw-r--r--stats/pwc-summary-61-90.json100
-rw-r--r--stats/pwc-summary-91-120.json34
-rw-r--r--stats/pwc-summary.json34
-rw-r--r--stats/pwc-yearly-language-summary.json152
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"
+ }