aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-289/ulrich-rieke/cpp/ch-1.cpp48
-rwxr-xr-xchallenge-289/ulrich-rieke/cpp/ch-2.cpp64
-rwxr-xr-xchallenge-289/ulrich-rieke/haskell/ch-1.hs20
-rwxr-xr-xchallenge-289/ulrich-rieke/haskell/ch-2.hs37
-rwxr-xr-xchallenge-289/ulrich-rieke/perl/ch-1.pl21
-rwxr-xr-xchallenge-289/ulrich-rieke/perl/ch-2.pl34
-rwxr-xr-xchallenge-289/ulrich-rieke/raku/ch-1.raku19
-rwxr-xr-xchallenge-289/ulrich-rieke/raku/ch-2.raku27
-rwxr-xr-xchallenge-289/ulrich-rieke/rust/ch-1.rs32
-rwxr-xr-xchallenge-289/ulrich-rieke/rust/ch-2.rs57
-rw-r--r--stats/pwc-current.json222
-rw-r--r--stats/pwc-language-breakdown-2019.json614
-rw-r--r--stats/pwc-language-breakdown-2020.json790
-rw-r--r--stats/pwc-language-breakdown-2021.json794
-rw-r--r--stats/pwc-language-breakdown-2022.json420
-rw-r--r--stats/pwc-language-breakdown-2023.json748
-rw-r--r--stats/pwc-language-breakdown-2024.json332
-rw-r--r--stats/pwc-language-breakdown-summary.json78
-rw-r--r--stats/pwc-leaders.json436
-rw-r--r--stats/pwc-summary-1-30.json40
-rw-r--r--stats/pwc-summary-121-150.json116
-rw-r--r--stats/pwc-summary-151-180.json46
-rw-r--r--stats/pwc-summary-181-210.json98
-rw-r--r--stats/pwc-summary-211-240.json92
-rw-r--r--stats/pwc-summary-241-270.json104
-rw-r--r--stats/pwc-summary-271-300.json70
-rw-r--r--stats/pwc-summary-301-330.json86
-rw-r--r--stats/pwc-summary-31-60.json42
-rw-r--r--stats/pwc-summary-61-90.json50
-rw-r--r--stats/pwc-summary-91-120.json102
-rw-r--r--stats/pwc-summary.json690
-rw-r--r--stats/pwc-yearly-language-summary.json158
32 files changed, 3459 insertions, 3028 deletions
diff --git a/challenge-289/ulrich-rieke/cpp/ch-1.cpp b/challenge-289/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..0bdc6ca2ed
--- /dev/null
+++ b/challenge-289/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,48 @@
+#include <iostream>
+#include <string>
+#include <vector>
+#include <sstream>
+#include <set>
+#include <algorithm>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> tokens ;
+ std::string word ;
+ std::istringstream istr { text } ;
+ while ( std::getline( istr , word , delimiter ))
+ tokens.push_back( word ) ;
+ return tokens ;
+}
+
+int main( ) {
+ std::cout << "Enter some integers, separated by blanks!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ auto tokens { split( line , ' ' ) } ;
+ std::vector<int> numbers ;
+ for ( auto w : tokens ) {
+ numbers.push_back( std::stoi( w ) ) ;
+ }
+ if ( numbers.size( ) < 3 )
+ std::cout << *std::max_element( numbers.begin( ) , numbers.end( ) ) <<
+ '\n' ;
+ else {
+ std::set<int> uniques { numbers.begin( ) , numbers.end( ) } ;
+ std::vector<int> for_sorting { uniques.begin( ) , uniques.end( ) } ;
+ if ( for_sorting.size( ) < 3 ) {
+ std::cout << *std::max_element( for_sorting.begin( ) , for_sorting.end( ) )
+ << '\n' ;
+ }
+ else {
+ std::sort( for_sorting.begin( ) , for_sorting.end( ) , []( int a , int b) {
+ return a > b ; } ) ;
+ std::cout << *(for_sorting.begin( ) + 2 ) << '\n' ;
+ }
+ }
+ return 0 ;
+}
+
+
+
+
+
diff --git a/challenge-289/ulrich-rieke/cpp/ch-2.cpp b/challenge-289/ulrich-rieke/cpp/ch-2.cpp
new file mode 100755
index 0000000000..b03c0abd30
--- /dev/null
+++ b/challenge-289/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,64 @@
+#include <vector>
+#include <string>
+#include <random>
+#include <iostream>
+#include <sstream>
+#include <algorithm>
+
+std::vector<std::string> split( 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 ;
+}
+
+std::string do_shuffle( const std::string & word ) {
+ std::random_device rd ;
+ std::mt19937 g ( rd( ) ) ;
+ std::string central { word.substr( 1 , word.length( ) - 2 ) } ;
+ std::string output { word.substr( 0 , 1 ) } ;
+ std::shuffle( central.begin( ) , central.end( ) , g ) ;
+ output = output + central ;
+ output.push_back( word.back( ) ) ;
+ return output ;
+}
+
+int main( ) {
+ std::cout << "Enter some sentences, <return> to end!\n" ;
+ std::vector<std::string> block ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ while ( ! line.empty( ) ) {
+ block.push_back( line ) ;
+ std::getline( std::cin , line ) ;
+ }
+ std::vector<std::string> shuffled ;
+ for ( auto aLine : block ) {
+ std::vector<std::string> shuffled_line ;
+ auto tokens { split( aLine , ' ' ) } ;
+ for ( auto w : tokens ) {
+ if ( w.length( ) <= 3 ) {
+ shuffled_line.push_back( w ) ;
+ }
+ else {
+ shuffled_line.push_back( do_shuffle( w ) ) ;
+ }
+ }
+ std::string changed ;
+ for ( auto w : shuffled_line ) {
+ changed = changed + w + " " ;
+ }
+ changed.pop_back( ) ;
+ shuffled.push_back( changed ) ;
+ }
+ for ( auto w : shuffled ) {
+ std::cout << w << '\n' ;
+ }
+ return 0 ;
+}
+
+
+
diff --git a/challenge-289/ulrich-rieke/haskell/ch-1.hs b/challenge-289/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..3ab4f252ab
--- /dev/null
+++ b/challenge-289/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,20 @@
+module Challenge289
+ where
+import qualified Data.Set as S
+import Data.List ((!!) , sort )
+
+solution :: [Int] -> Int
+solution list
+ |length list < 3 = maximum list
+ |otherwise = if length uniques < 3 then maximum uniques else sorted !! ( length sorted - 3 )
+ where
+ uniques :: [Int]
+ uniques = S.toList $ S.fromList list
+ sorted :: [Int]
+ sorted = sort uniques
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some integers separated by blanks!"
+ numberline <- getLine
+ print $ solution $ map read $ words numberline
diff --git a/challenge-289/ulrich-rieke/haskell/ch-2.hs b/challenge-289/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..282e96d062
--- /dev/null
+++ b/challenge-289/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,37 @@
+module Challenge289_2
+ where
+import System.Random
+import Data.List (init , tail , (!!))
+import Control.Applicative
+
+keepRolling :: Int -> [Int]
+keepRolling n = snd $ until ( null . fst ) transferOne ([0..n - 1] , [] )
+ where
+ transferOne :: ([Int] , [Int] ) -> ([Int] , [Int])
+ transferOne ( fromList , toList ) = (take selected fromList ++ drop ( selected
+ + 1 ) fromList , toList ++ [( fromList !! selected )])
+ where
+ selected = fst $ uniformR (0 , length fromList - 1) (mkStdGen 137 )
+
+shuffle :: String -> String
+shuffle s
+ |length s <= 3 = s
+ |otherwise = [head s] ++ shuffled ++ [last s]
+ where
+ randomIndices :: [Int]
+ randomIndices = keepRolling ( length s - 2 )
+ shuffled :: String
+ shuffled = map (\i -> ( init $ tail s ) !! i ) randomIndices
+
+enterLines :: IO [String]
+enterLines = do
+ line <- getLine
+ if null line then return []
+ else (line : ) <$> enterLines
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some sentences, <return> to end!"
+ sentences <- enterLines
+ let shuffled = map(\s -> unwords $ map shuffle $ words s) sentences
+ mapM_ putStrLn shuffled
diff --git a/challenge-289/ulrich-rieke/perl/ch-1.pl b/challenge-289/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..dfb4bfaa64
--- /dev/null
+++ b/challenge-289/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( max ) ;
+
+say "Enter some integers, separated by blanks!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @numbers = split( /\s/ , $line ) ;
+my %frequencies ;
+map { $frequencies{$_}++ } @numbers ;
+my @uniques = keys %frequencies ;
+my $len = scalar( @uniques ) ;
+if ( $len < 3 ) {
+ say max( @uniques ) ;
+}
+else {
+ my @sorted = sort {$b <=> $a} @uniques ;
+ say $sorted[2] ;
+}
diff --git a/challenge-289/ulrich-rieke/perl/ch-2.pl b/challenge-289/ulrich-rieke/perl/ch-2.pl
new file mode 100755
index 0000000000..28f6f5f3dd
--- /dev/null
+++ b/challenge-289/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( shuffle ) ;
+
+say "Enter some strings , <return> to end!" ;
+my @strings ;
+my $line = <STDIN> ;
+chomp $line ;
+while ( $line ) {
+ push( @strings , $line ) ;
+ $line = <STDIN> ;
+ chomp $line ;
+}
+my @shuffled ;
+for my $inputline( @strings ) {
+ my @changed_words ;
+ my @words = split( /\s/ , $inputline ) ;
+ for my $word( @words ) {
+ if ( length $word <= 3 ) {
+ push( @changed_words , $word ) ;
+ }
+ else {
+ my @letters = split( // , $word ) ;
+ my $changed = $letters[0] ;
+ my @shuffledLetters = shuffle (@letters[1..(length( $word ) - 2)]) ;
+ $changed .= (join( '' , @shuffledLetters) . $letters[$#letters] ) ;
+ push( @changed_words, $changed ) ;
+ }
+ }
+ push( @shuffled, join( ' ' , @changed_words ) ) ;
+}
+map { say } @shuffled ;
diff --git a/challenge-289/ulrich-rieke/raku/ch-1.raku b/challenge-289/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..e6dfb464f5
--- /dev/null
+++ b/challenge-289/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,19 @@
+use v6 ;
+
+say "Enter some integers, separated by blanks!" ;
+my $line = $*IN.get ;
+my @numbers = $line.words.map( {.Int} ) ;
+if @numbers.elems < 3 {
+ say @numbers.max ;
+}
+else {
+ my $uniques = @numbers.Set ;
+ my @sorted = $uniques.keys.sort ;
+ my $len = @sorted.elems ;
+ if ( $len < 3 ) {
+ say @sorted.max ;
+ }
+ else {
+ say @sorted[$len - 3] ;
+ }
+}
diff --git a/challenge-289/ulrich-rieke/raku/ch-2.raku b/challenge-289/ulrich-rieke/raku/ch-2.raku
new file mode 100755
index 0000000000..b45d3b1ccb
--- /dev/null
+++ b/challenge-289/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,27 @@
+use v6 ;
+
+say "Enter some strings , <return> to end!" ;
+my $line = $*IN.get ;
+my @strings ;
+while ( $line ) {
+ @strings.push( $line ) ;
+ $line = $*IN.get ;
+}
+my @shuffled ;
+for @strings -> $inline {
+ my @shuffled_row ;
+ for ( $inline.split( /\s/ )) -> $word {
+ if ( $word.chars <= 3 ) {
+ @shuffled_row.push( $word ) ;
+ }
+ else {
+ my $shuffled = $word.substr( 0 , 1 ) ;
+ my @in_between = $word.substr( 1 , $word.chars - 2 ).comb ;
+ @in_between = @in_between.pick: * ;
+ $shuffled ~= ( @in_between.join ~ $word.substr( $word.chars - 1 , 1 ) ) ;
+ @shuffled_row.push( $shuffled ) ;
+ }
+ }
+ @shuffled.push( @shuffled_row.join( ' ' ) ) ;
+}
+@shuffled.map( {.say} ) ;
diff --git a/challenge-289/ulrich-rieke/rust/ch-1.rs b/challenge-289/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..e461b90a89
--- /dev/null
+++ b/challenge-289/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,32 @@
+use std::io ;
+use std::collections::HashSet ;
+
+fn main() {
+ println!("Enter some integers, separated by blanks!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_line : &str = inline.as_str( ).trim( ) ;
+ let numbers : Vec<i32> = entered_line.split_whitespace( ).map( |s|
+ s.parse::<i32>().unwrap( ) ).collect( ) ;
+ if numbers.len( ) < 3 {
+ println!("{}" , numbers.into_iter( ).max( ).unwrap( ) ) ;
+ }
+ else {
+ let mut uniques : HashSet<i32> = HashSet::new( ) ;
+ for n in numbers {
+ uniques.insert( n ) ;
+ }
+ let mut for_sorting : Vec<i32> = Vec::new( ) ;
+ for n in uniques {
+ for_sorting.push( n ) ;
+ }
+ let len = for_sorting.len( ) ;
+ if len < 3 {
+ println!("{}" , for_sorting.into_iter( ).max( ).unwrap( ) ) ;
+ }
+ else {
+ for_sorting.sort( ) ;
+ println!("{}" , for_sorting[len - 3]) ;
+ }
+ }
+}
diff --git a/challenge-289/ulrich-rieke/rust/ch-2.rs b/challenge-289/ulrich-rieke/rust/ch-2.rs
new file mode 100755
index 0000000000..466ec92ad6
--- /dev/null
+++ b/challenge-289/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,57 @@
+use std::io ;
+use std::io::BufRead ;
+use rand::prelude::* ;
+
+fn shuffle_in_between( word : &str ) -> String {
+ let mut shuffled : String = String::new( ) ;
+ shuffled.push( word.chars( ).nth( 0 ).unwrap( ) ) ;
+ let mut rng = rand::thread_rng( ) ;
+ let mut letters : Vec<char> = Vec::new( ) ;
+ for n in 1..word.len( ) - 1 {
+ letters.push( word.chars( ).nth( n ).unwrap( ) ) ;
+ }
+ letters.shuffle( &mut rng ) ;
+ for l in letters {
+ shuffled.push( l ) ;
+ }
+ shuffled.push( word.chars( ).last( ).unwrap( ) ) ;
+ shuffled
+}
+
+fn main() -> io::Result<( )> {
+ println!("Enter some strings !");
+ println!("Enter <return> to end!" ) ;
+ let mut all_input : String = String::new( ) ;
+ let mut lines = io::stdin( ).lock( ).lines( ) ;
+ 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 all_lines : &str = all_input.as_str( ).trim( ) ;
+ let rows : Vec<&str> = all_lines.split( "\n").collect( ) ;
+ let valid_rows : Vec<&str> = rows.into_iter( ).filter( |&s| s.len( )
+ > 0 ).collect( ) ;
+ let mut shuffled_rows : Vec<Vec<String>> = Vec::new( ) ;
+ for r in &valid_rows {
+ let mut shuffled_words : Vec<String> = Vec::new( ) ;
+ let words : Vec<&str> = r.split_whitespace( ).collect( ) ;
+ for w in &words {
+ if w.len( ) > 3 {
+ let shuffled : String = shuffle_in_between( w ) ;
+ shuffled_words.push( shuffled ) ;
+ }
+ else {
+ shuffled_words.push( w.to_string( ) ) ;
+ }
+ }
+ shuffled_rows.push( shuffled_words ) ;
+ }
+ println!("{:?}" , shuffled_rows ) ;
+ Ok(())
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 676fc24744..13f2e9a0a3 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,7 +1,98 @@
{
+ "subtitle" : {
+ "text" : "[Champions: 10] Last updated at 2024-09-30 21:06:50 GMT"
+ },
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
+ }
+ },
+ "series" : [
+ {
+ "data" : [
+ {
+ "y" : 2,
+ "name" : "David Ferrone",
+ "drilldown" : "David Ferrone"
+ },
+ {
+ "drilldown" : "Lubos Kolouch",
+ "name" : "Lubos Kolouch",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Luca Ferrari",
+ "y" : 12,
+ "name" : "Luca Ferrari"
+ },
+ {
+ "drilldown" : "Niels van Dijke",
+ "y" : 2,
+ "name" : "Niels van Dijke"
+ },
+ {
+ "name" : "Paulo Custodio",
+ "y" : 2,
+ "drilldown" : "Paulo Custodio"
+ },
+ {
+ "drilldown" : "Robbie Hatley",
+ "y" : 2,
+ "name" : "Robbie Hatley"
+ },
+ {
+ "y" : 4,
+ "name" : "Thomas Kohler",
+ "drilldown" : "Thomas Kohler"
+ },
+ {
+ "y" : 3,
+ "name" : "Torgny Lyon",
+ "drilldown" : "Torgny Lyon"
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "y" : 4,
+ "drilldown" : "Ulrich Rieke"
+ },
+ {
+ "name" : "W. Luis Mochan",
+ "y" : 3,
+ "drilldown" : "W. Luis Mochan"
+ }
+ ],
+ "colorByPoint" : 1,
+ "name" : "The Weekly Challenge - 289"
+ }
+ ],
+ "xAxis" : {
+ "type" : "category"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "chart" : {
+ "type" : "column"
+ },
"drilldown" : {
"series" : [
{
+ "name" : "David Ferrone",
+ "id" : "David Ferrone",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ]
+ },
+ {
"name" : "Lubos Kolouch",
"id" : "Lubos Kolouch",
"data" : [
@@ -12,8 +103,6 @@
]
},
{
- "name" : "Luca Ferrari",
- "id" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -23,26 +112,28 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "Luca Ferrari",
+ "name" : "Luca Ferrari"
},
{
+ "name" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
],
- "name" : "Niels van Dijke",
"id" : "Niels van Dijke"
},
{
+ "name" : "Paulo Custodio",
"data" : [
[
"Perl",
2
]
],
- "name" : "Paulo Custodio",
"id" : "Paulo Custodio"
},
{
@@ -56,8 +147,21 @@
"name" : "Robbie Hatley"
},
{
- "id" : "W. Luis Mochan",
- "name" : "W. Luis Mochan",
+ "id" : "Thomas Kohler",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 2
+ ]
+ ],
+ "name" : "Thomas Kohler"
+ },
+ {
+ "id" : "Torgny Lyon",
"data" : [
[
"Perl",
@@ -67,80 +171,48 @@
"Blog",
1
]
+ ],
+ "name" : "Torgny Lyon"
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "id" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
]
+ },
+ {
+ "name" : "W. Luis Mochan",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ],
+ "id" : "W. Luis Mochan"
}
]
},
- "title" : {
- "text" : "The Weekly Challenge - 289"
- },
- "xAxis" : {
- "type" : "category"
- },
- "subtitle" : {
- "text" : "[Champions: 6] Last updated at 2024-09-30 14:28:24 GMT"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "legend" : {
- "enabled" : 0
- },
- "chart" : {
- "type" : "column"
- },
"tooltip" : {
- "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>",
"followPointer" : 1,
- "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
+ "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" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
+ "legend" : {
+ "enabled" : 0
},
- "series" : [
- {
- "name" : "The Weekly Challenge - 289",
- "data" : [
- {
- "y" : 2,
- "name" : "Lubos Kolouch",
- "drilldown" : "Lubos Kolouch"
- },
- {
- "name" : "Luca Ferrari",
- "drilldown" : "Luca Ferrari",
- "y" : 12
- },
- {
- "y" : 2,
- "drilldown" : "Niels van Dijke",
- "name" : "Niels van Dijke"
- },
- {
- "y" : 2,
- "name" : "Paulo Custodio",
- "drilldown" : "Paulo Custodio"
- },
- {
- "y" : 2,
- "drilldown" : "Robbie Hatley",
- "name" : "Robbie Hatley"
- },
- {
- "name" : "W. Luis Mochan",
- "drilldown" : "W. Luis Mochan",
- "y" : 3
- }
- ],
- "colorByPoint" : 1
- }
- ]
+ "title" : {
+ "text" : "The Weekly Challenge - 289"
+ }
}
diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json
index 77b040076a..0e09f9a28e 100644
--- a/stats/pwc-language-breakdown-2019.json
+++ b/stats/pwc-language-breakdown-2019.json
@@ -1,248 +1,32 @@
{
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-09-30 14:28:24 GMT"
- },
- "legend" : {
- "enabled" : "false"
- },
- "chart" : {
- "type" : "column"
- },
"tooltip" : {
"pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
"headerFormat" : "<span style=\"font-size:11px\"></span>",
"followPointer" : "true"
},
+ "legend" : {
+ "enabled" : "false"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge Language"
+ },
"plotOptions" : {
"series" : {
- "borderWidth" : 0,
"dataLabels" : {
"enabled" : 1,
"format" : "{point.y}"
- }
+ },
+ "borderWidth" : 0
}
},
- "series" : [
- {
- "data" : [
- {
- "drilldown" : "041",
- "name" : "041",
- "y" : 80
- },
- {
- "name" : "040",
- "drilldown" : "040",
- "y" : 77
- },
- {
- "y" : 68,
- "drilldown" : "039",
- "name" : "039"
- },
- {
- "y" : 74,
- "drilldown" : "038",
- "name" : "038"
- },
- {
- "y" : 70,
- "name" : "037",
- "drilldown" : "037"
- },
- {
- "y" : 70,
- "name" : "036",
- "drilldown" : "036"
- },
- {
- "y" : 68,
- "name" : "035",
- "drilldown" : "035"
- },
- {
- "drilldown" : "034",
- "name" : "034",
- "y" : 70
- },
- {
- "drilldown" : "033",
- "name" : "033",
- "y" : 113
- },
- {
- "drilldown" : "032",
- "name" : "032",
- "y" : 97
- },
- {
- "drilldown" : "031",
- "name" : "031",
- "y" : 93
- },
- {
- "name" : "030",
- "drilldown" : "030",
- "y" : 120
- },
- {
- "name" : "029",
- "drilldown" : "029",
- "y" : 83
- },
- {
- "name" : "028",
- "drilldown" : "028",
- "y" : 82
- },
- {
- "y" : 64,
- "name" : "027",
- "drilldown" : "027"
- },
- {
- "y" : 75,
- "drilldown" : "026",
- "name" : "026"
- },
- {
- "name" : "025",
- "drilldown" : "025",
- "y" : 62
- },
- {
- "y" : 77,
- "name" : "024",
- "drilldown" : "024"
- },
- {
- "name" : "023",
- "drilldown" : "023",
- "y" : 88
- },
- {
- "y" : 72,
- "drilldown" : "022",
- "name" : "022"
- },
- {
- "name" : "021",
- "drilldown" : "021",
- "y" : 72
- },
- {
- "drilldown" : "020",
- "name" : "020",
- "y" : 100
- },
- {
- "drilldown" : "019",
- "name" : "019",
- "y" : 101
- },
- {
- "y" : 82,
- "drilldown" : "018",
- "name" : "018"
- },
- {
- "name" : "017",
- "drilldown" : "017",
- "y" : 83
- },
- {
- "y" : 75,
- "name" : "016",
- "drilldown" : "016"
- },
- {
- "drilldown" : "015",
- "name" : "015",
- "y" : 95
- },
- {
- "drilldown" : "014",
- "name" : "014",
- "y" : 98
- },
- {
- "name" : "013",
- "drilldown" : "013",
- "y" : 85
- },
- {
- "name" : "012",
- "drilldown" : "012",
- "y" : 90
- },
- {
- "name" : "011",
- "drilldown" : "011",
- "y" : 86
- },
- {
- "drilldown" : "010",