From 3114956979e812e8ca166cb84d8dea346cee22d3 Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Mon, 30 Sep 2024 22:07:13 +0100 Subject: - Added solutions by Ulrich Rieke. - Added solutions by Paulo Custodio. - Added solutions by David Ferrone. - Added solutions by Thomas Kohler. - Added solutions by Torgny Lyon. --- challenge-289/ulrich-rieke/cpp/ch-1.cpp | 48 ++ challenge-289/ulrich-rieke/cpp/ch-2.cpp | 64 +++ challenge-289/ulrich-rieke/haskell/ch-1.hs | 20 + challenge-289/ulrich-rieke/haskell/ch-2.hs | 37 ++ challenge-289/ulrich-rieke/perl/ch-1.pl | 21 + challenge-289/ulrich-rieke/perl/ch-2.pl | 34 ++ challenge-289/ulrich-rieke/raku/ch-1.raku | 19 + challenge-289/ulrich-rieke/raku/ch-2.raku | 27 + challenge-289/ulrich-rieke/rust/ch-1.rs | 32 ++ challenge-289/ulrich-rieke/rust/ch-2.rs | 57 +++ stats/pwc-current.json | 222 +++++--- stats/pwc-language-breakdown-2019.json | 614 +++++++++++----------- stats/pwc-language-breakdown-2020.json | 790 ++++++++++++++-------------- stats/pwc-language-breakdown-2021.json | 794 ++++++++++++++--------------- stats/pwc-language-breakdown-2022.json | 420 +++++++-------- stats/pwc-language-breakdown-2023.json | 748 +++++++++++++-------------- stats/pwc-language-breakdown-2024.json | 332 ++++++------ stats/pwc-language-breakdown-summary.json | 78 +-- stats/pwc-leaders.json | 436 ++++++++-------- stats/pwc-summary-1-30.json | 40 +- stats/pwc-summary-121-150.json | 116 ++--- stats/pwc-summary-151-180.json | 46 +- stats/pwc-summary-181-210.json | 98 ++-- stats/pwc-summary-211-240.json | 92 ++-- stats/pwc-summary-241-270.json | 104 ++-- stats/pwc-summary-271-300.json | 70 +-- stats/pwc-summary-301-330.json | 86 ++-- stats/pwc-summary-31-60.json | 42 +- stats/pwc-summary-61-90.json | 50 +- stats/pwc-summary-91-120.json | 102 ++-- stats/pwc-summary.json | 690 ++++++++++++------------- stats/pwc-yearly-language-summary.json | 158 +++--- 32 files changed, 3459 insertions(+), 3028 deletions(-) create mode 100755 challenge-289/ulrich-rieke/cpp/ch-1.cpp create mode 100755 challenge-289/ulrich-rieke/cpp/ch-2.cpp create mode 100755 challenge-289/ulrich-rieke/haskell/ch-1.hs create mode 100755 challenge-289/ulrich-rieke/haskell/ch-2.hs create mode 100755 challenge-289/ulrich-rieke/perl/ch-1.pl create mode 100755 challenge-289/ulrich-rieke/perl/ch-2.pl create mode 100755 challenge-289/ulrich-rieke/raku/ch-1.raku create mode 100755 challenge-289/ulrich-rieke/raku/ch-2.raku create mode 100755 challenge-289/ulrich-rieke/rust/ch-1.rs create mode 100755 challenge-289/ulrich-rieke/rust/ch-2.rs 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 +#include +#include +#include +#include +#include + +std::vector split( const std::string & text , char delimiter ) { + std::vector 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 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 uniques { numbers.begin( ) , numbers.end( ) } ; + std::vector 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 +#include +#include +#include +#include +#include + +std::vector split( std::string & text , char delimiter ) { + std::vector 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, to end!\n" ; + std::vector block ; + std::string line ; + std::getline( std::cin , line ) ; + while ( ! line.empty( ) ) { + block.push_back( line ) ; + std::getline( std::cin , line ) ; + } + std::vector shuffled ; + for ( auto aLine : block ) { + std::vector 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, 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 = ; +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 , to end!" ; +my @strings ; +my $line = ; +chomp $line ; +while ( $line ) { + push( @strings , $line ) ; + $line = ; + 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 , 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 = entered_line.split_whitespace( ).map( |s| + s.parse::().unwrap( ) ).collect( ) ; + if numbers.len( ) < 3 { + println!("{}" , numbers.into_iter( ).max( ).unwrap( ) ) ; + } + else { + let mut uniques : HashSet = HashSet::new( ) ; + for n in numbers { + uniques.insert( n ) ; + } + let mut for_sorting : Vec = 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 = 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 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::new( ) ; + for r in &valid_rows { + let mut shuffled_words : Vec = 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,6 +1,97 @@ { + "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", @@ -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" : "{series.name}
", "followPointer" : 1, - "pointFormat" : "{point.name}: {point.y:f}
" + "pointFormat" : "{point.name}: {point.y:f}
", + "headerFormat" : "{series.name}
" }, - "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" : "Challenge {point.name}: {point.y:f}
", "headerFormat" : "", "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", - "name" : "010", - "y" : 69 - }, - { - "name" : "009", - "drilldown" : "009", - "y" : 79 - }, - { - "y" : 82, - "name" : "008", - "drilldown" : "008" - }, - { - "drilldown" : "007", - "name" : "007", - "y" : 71 - }, - { - "name" : "006", - "drilldown" : "006", - "y" : 63 - }, - { - "y" : 82, - "name" : "005", - "drilldown" : "005" - }, - { - "y" : 106, - "drilldown" : "004", - "name" : "004" - }, - { - "y" : 91, - "name" : "003", - "drilldown" : "003" - }, - { - "y" : 133, - "name" : "002", - "drilldown" : "002" - }, - { - "drilldown" : "001", - "name" : "001", - "y" : 165 - } - ], - "colorByPoint" : "true", - "name" : "The Weekly Challenge Languages" - } - ], + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-09-30 21:06:50 GMT" + }, "drilldown" : { "series" : [ { + "name" : "041", + "id" : "041", "data" : [ [ "Perl", @@ -256,13 +40,9 @@ "Blog", 9 ] - ], - "name" : "041", - "id" : "041" + ] }, { - "name" : "040", - "id" : "040", "data" : [ [ "Perl", @@ -276,7 +56,9 @@ "Blog", 10 ] - ] + ], + "id" : "040", + "name" : "040" }, { "data" : [ @@ -293,11 +75,10 @@ 12 ] ], - "name" : "039", - "id" : "039" + "id" : "039", + "name" : "039" }, { - "name" : "038", "id" : "038", "data" : [ [ @@ -312,11 +93,11 @@ "Blog", 12 ] - ] + ], + "name" : "038" }, { "id" : "037", - "name" : "037", "data" : [ [ "Perl", @@ -330,9 +111,12 @@ "Blog", 9 ] - ] + ], + "name" : "037" }, { + "name" : "036", + "id" : "036", "data" : [ [ "Perl", @@ -346,9 +130,7 @@ "Blog", 11 ] - ], - "name" : "036", - "id" : "036" + ] }, { "data" : [ @@ -365,8 +147,8 @@ 9 ] ], - "name" : "035", - "id" : "035" + "id" : "035", + "name" : "035" }, { "name" : "034", @@ -387,6 +169,7 @@ ] }, { + "id" : "033", "data" : [ [ "Perl", @@ -401,10 +184,11 @@ 10 ] ], - "name" : "033", - "id" : "033" + "name" : "033" }, { + "name" : "032", + "id" : "032", "data" : [ [ "Perl", @@ -418,13 +202,11 @@ "Blog", 10 ] - ], - "id" : "032", - "name" : "032" + ] }, { - "id" : "031", "name" : "031", + "id" : "031", "data" : [ [ "Perl", @@ -441,8 +223,6 @@ ] }, { - "id" : "030", - "name" : "030", "data" : [ [ "Perl", @@ -456,11 +236,11 @@ "Blog", 10 ] - ] + ], + "id" : "030", + "name" : "030" }, { - "name" : "029", - "id" : "029", "data" : [ [ "Perl", @@ -474,9 +254,12 @@ "Blog", 12 ] - ] + ], + "id" : "029", + "name" : "029" }, { + "name" : "028", "data" : [ [ "Perl", @@ -491,10 +274,11 @@ 9 ] ], - "name" : "028", "id" : "028" }, { + "name" : "027", + "id" : "027", "data" : [ [ "Perl", @@ -508,12 +292,9 @@ "Blog", 9 ] - ], - "name" : "027", - "id" : "027" + ] }, { - "id" : "026", "name" : "026", "data" : [ [ @@ -528,7 +309,8 @@ "Blog", 10 ] - ] + ], + "id" : "026" }, { "data" : [ @@ -545,12 +327,10 @@ 12 ] ], - "name" : "025", - "id" : "025" + "id" : "025", + "name" : "025" }, { - "id" : "024", - "name" : "024", "data" : [ [ "Perl", @@ -564,11 +344,13 @@ "Blog", 11 ] - ] + ], + "id" : "024", + "name" : "024" }, { - "id" : "023", "name" : "023", + "id" : "023", "data" : [ [ "Perl", @@ -585,8 +367,8 @@ ] }, { - "id" : "022", "name" : "022", + "id" : "022", "data" : [ [ "Perl", @@ -603,8 +385,6 @@ ] }, { - "name" : "021", - "id" : "021", "data" : [ [ "Perl", @@ -618,9 +398,12 @@ "Blog", 10 ] - ] + ], + "id" : "021", + "name" : "021" }, { + "name" : "020", "data" : [ [ "Perl", @@ -635,12 +418,10 @@ 13 ] ], - "name" : "020", "id" : "020" }, { "id" : "019", - "name" : "019", "data" : [ [ "Perl", @@ -654,10 +435,10 @@ "Blog", 13 ] - ] + ], + "name" : "019" }, { - "id" : "018", "name" : "018", "data" : [ [ @@ -672,11 +453,11 @@ "Blog", 14 ] - ] + ], + "id" : "018" }, { "name" : "017", - "id" : "017", "data" : [ [ "Perl", @@ -690,9 +471,11 @@ "Blog", 12 ] - ] + ], + "id" : "017" }, { + "name" : "016", "data" : [ [ "Perl", @@ -707,10 +490,10 @@ 13 ] ], - "name" : "016", "id" : "016" }, { + "id" : "015", "data" : [ [ "Perl", @@ -725,12 +508,10 @@ 15 ] ], - "id" : "015", "name" : "015" }, { "name" : "014", - "id" : "014", "data" : [ [ "Perl", @@ -744,11 +525,10 @@ "Blog", 15 ] - ] + ], + "id" : "014" }, { - "id" : "013", - "name" : "013", "data" : [ [ "Perl", @@ -762,7 +542,9 @@ "Blog", 13 ] - ] + ], + "id" : "013", + "name" : "013" }, { "data" : [ @@ -783,6 +565,7 @@ "name" : "012" }, { + "id" : "011", "data" : [ [ "Perl", @@ -797,12 +580,11 @@ 10 ] ], - "name" : "011", - "id" : "011" + "name" : "011" }, { - "id" : "010", "name" : "010", + "id" : "010", "data" : [ [ "Perl", @@ -819,6 +601,7 @@ ] }, { + "name" : "009", "data" : [ [ "Perl", @@ -833,11 +616,9 @@ 13 ] ], - "name" : "009", "id" : "009" }, { - "id" : "008", "name" : "008", "data" : [ [ @@ -852,9 +633,11 @@ "Blog", 12 ] - ] + ], + "id" : "008" }, { + "id" : "007", "data" : [ [ "Perl", @@ -869,12 +652,10 @@ 10 ] ], - "name" : "007", - "id" : "007" + "name" : "007" }, { "name" : "006", - "id" : "006", "data" : [ [ "Perl", @@ -888,9 +669,11 @@ "Blog", 7 ] - ] + ], + "id" : "006" }, { + "id" : "005", "data" : [ [ "Perl", @@ -905,12 +688,11 @@ 12 ] ], - "id" : "005", "name" : "005" }, { - "id" : "004", "name" : "004", + "id" : "004", "data" : [ [ "Perl", @@ -927,6 +709,7 @@ ] }, { + "id" : "003", "data" : [ [ "Perl", @@ -941,12 +724,10 @@ 9 ] ], - "id" : "003", "name" : "003" }, { "id" : "002", - "name" : "002", "data" : [ [ "Perl", @@ -960,9 +741,11 @@ "Blog", 10 ] - ] + ], + "name" : "002" }, { + "name" : "001", "data" : [ [ "Perl", @@ -977,15 +760,232 @@ 12 ] ], - "name" : "001", "id" : "001" } ] }, - "title" : { - "text" : "The Weekly Challenge Language" + "chart" : { + "type" : "column" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "xAxis" : { "type" : "category" - } + }, + "series" : [ + { + "name" : "The Weekly Challenge Languages", + "data" : [ + { + "drilldown" : "041", + "y" : 80, + "name" : "041" + }, + { + "y" : 77, + "name" : "040", + "drilldown" : "040" + }, + { + "y" : 68, + "name" : "039", + "drilldown" : "039" + }, + { + "y" : 74, + "name" : "038", + "drilldown" : "038" + }, + { + "drilldown" : "037", + "name" : "037", + "y" : 70 + }, + { + "drilldown" : "036", + "name" : "036", + "y" : 70 + }, + { + "drilldown" : "035", + "y" : 68, + "name" : "035" + }, + { + "drilldown" : "034", + "y" : 70, + "name" : "034" + }, + { + "name" : "033", + "y" : 113, + "drilldown" : "033" + }, + { + "y" : 97, + "name" : "032", + "drilldown" : "032" + }, + { + "name" : "031", + "y" : 93, + "drilldown" : "031" + }, + { + "drilldown" : "030", + "name" : "030", + "y" : 120 + }, + { + "y" : 83, + "name" : "029", + "drilldown" : "029" + }, + { + "name" : "028", + "y" : 82, + "drilldown" : "028" + }, + { + "y" : 64, + "name" : "027", + "drilldown" : "027" + }, + { + "y" : 75, + "name" : "026", + "drilldown" : "026" + }, + { + "name" : "025", + "y" : 62, + "drilldown" : "025" + }, + { + "drilldown" : "024", + "name" : "024", + "y" : 77 + }, + { + "name" : "023", + "y" : 88, + "drilldown" : "023" + }, + { + "name" : "022", + "y" : 72, + "drilldown" : "022" + }, + { + "name" : "021", + "y" : 72, + "drilldown" : "021" + }, + { + "drilldown" : "020", + "name" : "020", + "y" : 100 + }, + { + "y" : 101, + "name" : "019", + "drilldown" : "019" + }, + { + "drilldown" : "018", + "name" : "018", + "y" : 82 + }, + { + "drilldown" : "017", + "y" : 83, + "name" : "017" + }, + { + "drilldown" : "016", + "y" : 75, + "name" : "016" + }, + { + "drilldown" : "015", + "name" : "015", + "y" : 95 + }, + { + "drilldown" : "014", + "y" : 98, + "name" : "014" + }, + { + "y" : 85, + "name" : "013", + "drilldown" : "013" + }, + { + "y" : 90, + "name" : "012", + "drilldown" : "012" + }, + { + "name" : "011", + "y" : 86, + "drilldown" : "011" + }, + { + "drilldown" : "010", + "name" : "010", + "y" : 69 + }, + { + "name" : "009", + "y" : 79, + "drilldown" : "009" + }, + { + "drilldown" : "008", + "y" : 82, + "name" : "008" + }, + { + "drilldown" : "007", + "y" : 71, + "name" : "007" + }, + { + "drilldown" : "006", + "name" : "006", + "y" : 63 + }, + { + "drilldown" : "005", + "name" : "005", + "y" : 82 + }, + { + "y" : 106, + "name" : "004", + "drilldown" : "004" + }, + { + "name" : "003", + "y" : 91, + "drilldown" : "003" + }, + { + "name" : "002", + "y" : 133, + "drilldown" : "002" + }, + { + "drilldown" : "001", + "y" : 165, + "name" : "001" + } + ], + "colorByPoint" : "true" + } + ] } diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json index 3ab172aeae..6e1e5aa44c 100644 --- a/stats/pwc-language-breakdown-2020.json +++ b/stats/pwc-language-breakdown-2020.json @@ -1,13 +1,306 @@ { - "xAxis" : { - "type" : "category" + "tooltip" : { + "followPointer" : "true", + "headerFormat" : "", + "pointFormat" : "Challenge {point.name}: {point.y:f}
" }, "title" : { "text" : "The Weekly Challenge Language" }, + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-09-30 21:06:50 GMT" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "data" : [ + { + "drilldown" : "093", + "name" : "093", + "y" : 87 + }, + { + "drilldown" : "092", + "y" : 98, + "name" : "092" + }, + { + "name" : "091", + "y" : 108, + "drilldown" : "091" + }, + { + "y" : 113, + "name" : "090", + "drilldown" : "090" + }, + { + "y" : 113, + "name" : "089", + "drilldown" : "089" + }, + { + "drilldown" : "088", + "name" : "088", + "y" : 121 + }, + { + "name" : "087", + "y" : 101, + "drilldown" : "087" + }, + { + "drilldown" : "086", + "name" : "086", + "y" : 104 + }, + { + "drilldown" : "085", + "name" : "085", + "y" : 113 + }, + { + "drilldown" : "084", + "y" : 119, + "name" : "084" + }, + { + "drilldown" : "083", + "name" : "083", + "y" : 127 + }, + { + "y" : 114, + "name" : "082", + "drilldown" : "082" + }, + { + "drilldown" : "081", + "name" : "081", + "y" : 114 + }, + { + "drilldown" : "080", + "name" : "080", + "y" : 127 + }, + { + "name" : "079", + "y" : 122, + "drilldown" : "079" + }, + { + "name" : "078", + "y" : 127, + "drilldown" : "078" + }, + { + "drilldown" : "077", + "name" : "077", + "y" : 100 + }, + { + "drilldown" : "076", + "name" : "076", + "y" : 101 + }, + { + "y" : 117, + "name" : "075", + "drilldown" : "075" + }, + { + "drilldown" : "074", + "y" : 117, + "name" : "074" + }, + { + "name" : "073", + "y" : 112, + "drilldown" : "073" + }, + { + "drilldown" : "072", + "name" : "072", + "y" : 116 + }, + { + "name" : "071", + "y" : 82, + "drilldown" : "071" + }, + { + "drilldown" : "070", + "y" : 98, + "name" : "070" + }, + { + "y" : 87, + "name" : "069", + "drilldown" : "069" + }, + { + "drilldown" : "068", + "name" : "068", + "y" : 79 + }, + { + "drilldown" : "067", + "y" : 94, + "name" : "067" + }, + { + "drilldown" : "066", + "name" : "066", + "y" : 88 + }, + { + "y" : 77, + "name" : "065", + "drilldown" : "065" + }, + { + "drilldown" : "064", + "name" : "064", + "y" : 84 + }, + { + "y" : 93, + "name" : "063", + "drilldown" : "063" + }, + { + "y" : 62, + "name" : "062", + "drilldown" : "062" + }, + { + "drilldown" : "061", + "y" : 85, + "name" : "061" + }, + { + "drilldown" : "060", + "name" : "060", + "y" : 89 + }, + { + "drilldown" : "059", + "name" : "059", + "y" : 93 + }, + { + "drilldown" : "058", + "y" : 71, + "name" : "058" + }, + { + "name" : "057", + "y" : 86, + "drilldown" : "057" + }, + { + "drilldown" : "056", + "y" : 104, + "name" : "056" + }, + { + "name" : "055", + "y" : 92, + "drilldown" : "055" + }, + { + "drilldown" : "054", + "y" : 107, + "name" : "054" + }, + { + "y" : 105, + "name" : "053", + "drilldown" : "053" + }, + { + "name" : "052", + "y" : 93, + "drilldown" : "052" + }, + { + "drilldown" : "051", + "y" : 95, + "name" : "051" + }, + { + "drilldown" : "050", + "y" : 104, + "name" : "050" + }, + { + "drilldown" : "049", + "name" : "049", + "y" : 93 + }, + { + "drilldown" : "048", + "name" : "048", + "y" : 112 + }, + { + "drilldown" : "047", + "y" : 88, + "name" : "047" + }, + { + "drilldown" : "046", + "y" : 93, + "name" : "046" + }, + { + "drilldown" : "045", + "y" : 102, + "name" : "045" + }, + { + "y" : 90, + "name" : "044", + "drilldown" : "044" + }, + { + "drilldown" : "043", + "y" : 72, + "name" : "043" + }, + { + "y" : 98, + "name" : "042", + "drilldown" : "042" + } + ], + "colorByPoint" : "true", + "name" : "The Weekly Challenge Languages" + } + ], + "chart" : { + "type" : "column" + }, "drilldown" : { "series" : [ { + "name" : "093", + "id" : "093", "data" : [ [ "Perl", @@ -21,11 +314,10 @@ "Blog", 16 ] - ], - "name" : "093", - "id" : "093" + ] }, { + "id" : "092", "data" : [ [ "Perl", @@ -40,10 +332,10 @@ 16 ] ], - "id" : "092", "name" : "092" }, { + "id" : "091", "data" : [ [ "Perl", @@ -58,10 +350,10 @@ 16 ] ], - "id" : "091", "name" : "091" }, { + "id" : "090", "data" : [ [ "Perl", @@ -76,12 +368,10 @@ 17 ] ], - "name" : "090", - "id" : "090" + "name" : "090" }, { "name" : "089", - "id" : "089", "data" : [ [ "Perl", @@ -95,7 +385,8 @@ "Blog", 20 ] - ] + ], + "id" : "089" }, { "data" : [ @@ -112,8 +403,8 @@ 20 ] ], - "name" : "088", - "id" : "088" + "id" : "088", + "name" : "088" }, { "name" : "087", @@ -134,6 +425,7 @@ ] }, { + "name" : "086", "data" : [ [ "Perl", @@ -148,12 +440,9 @@ 15 ] ], - "name" : "086", "id" : "086" }, { - "name" : "085", - "id" : "085", "data" : [ [ "Perl", @@ -167,11 +456,12 @@ "Blog", 18 ] - ] + ], + "id" : "085", + "name" : "085" }, { "id" : "084", - "name" : "084", "data" : [ [ "Perl", @@ -185,7 +475,8 @@ "Blog", 12 ] - ] + ], + "name" : "084" }, { "data" : [ @@ -202,11 +493,10 @@ 16 ] ], - "name" : "083", - "id" : "083" + "id" : "083", + "name" : "083" }, { - "id" : "082", "name" : "082", "data" : [ [ @@ -221,9 +511,12 @@ "Blog", 17 ] - ] + ], + "id" : "082" }, { + "name" : "081", + "id" : "081", "data" : [ [ "Perl", @@ -237,12 +530,9 @@ "Blog", 15 ] - ], - "name" : "081", - "id" : "081" + ] }, { - "id" : "080", "name" : "080", "data" : [ [ @@ -257,7 +547,8 @@ "Blog", 16 ] - ] + ], + "id" : "080" }, { "data" : [ @@ -274,12 +565,10 @@ 17 ] ], - "name" : "079", - "id" : "079" + "id" : "079", + "name" : "079" }, { - "id" : "078", - "name" : "078", "data" : [ [ "Perl", @@ -293,10 +582,11 @@ "Blog", 18 ] - ] + ], + "id" : "078", + "name" : "078" }, { - "name" : "077", "id" : "077", "data" : [ [ @@ -311,11 +601,11 @@ "Blog", 14 ] - ] + ], + "name" : "077" }, { "name" : "076", - "id" : "076", "data" : [ [ "Perl", @@ -329,9 +619,11 @@ "Blog", 16 ] - ] + ], + "id" : "076" }, { + "name" : "075", "data" : [ [ "Perl", @@ -346,10 +638,10 @@ 20 ] ], - "id" : "075", - "name" : "075" + "id" : "075" }, { + "id" : "074", "data" : [ [ "Perl", @@ -364,12 +656,10 @@ 20 ] ], - "id" : "074", "name" : "074" }, { "id" : "073", - "name" : "073", "data" : [ [ "Perl", @@ -383,9 +673,12 @@ "Blog", 17 ] - ] + ], + "name" : "073" }, { + "name" : "072", + "id" : "072", "data" : [ [ "Perl", @@ -399,11 +692,10 @@ "Blog", 19 ] - ], - "id" : "072", - "name" : "072" + ] }, { + "id" : "071", "data" : [ [ "Perl", @@ -418,12 +710,9 @@ 15 ] ], - "id" : "071", "name" : "071" }, { - "id" : "070", - "name" : "070", "data" : [ [ "Perl", @@ -437,9 +726,13 @@ "Blog", 17 ] - ] + ], + "id" : "070", + "name" : "070" }, { + "name" : "069", + "id" : "069", "data" : [ [ "Perl", @@ -453,9 +746,7 @@ "Blog", 16 ] - ], - "id" : "069", - "name" : "069" + ] }, { "data" : [ @@ -472,8 +763,8 @@ 13 ] ], - "name" : "068", - "id" : "068" + "id" : "068", + "name" : "068" }, { "data" : [ @@ -494,6 +785,7 @@ "name" : "067" }, { + "id" : "066", "data" : [ [ "Perl", @@ -508,10 +800,11 @@ 14 ] ], - "name" : "066", - "id" : "066" + "name" : "066" }, { + "name" : "065", + "id" : "065", "data" : [ [ "Perl", @@ -525,11 +818,10 @@ "Blog", 15 ] - ], - "name" : "065", - "id" : "065" + ] }, { + "id" : "064", "data" : [ [ "Perl", @@ -544,12 +836,9 @@ 16 ] ], - "id" : "064", "name" : "064" }, { - "id" : "063", - "name" : "063", "data" : [ [ "Perl", @@ -563,9 +852,12 @@ "Blog", 13 ] - ] + ], + "id" : "063", + "name" : "063" }, { + "id" : "062", "data" : [ [ "Perl", @@ -580,8 +872,7 @@ 11 ] ], - "name" : "062", - "id" : "062" + "name" : "062" }, { "data" : [ @@ -598,12 +889,10 @@ 14 ] ], - "name" : "061", - "id" : "061" + "id" : "061", + "name" : "061" }, { - "name" : "060", - "id" : "060", "data" : [ [ "Perl", @@ -617,11 +906,12 @@ "Blog", 16 ] - ] + ], + "id" : "060", + "name" : "060" }, { "id" : "059", - "name" : "059", "data" : [ [ "Perl", @@ -635,9 +925,12 @@ "Blog", 16 ] - ] + ], + "name" : "059" }, { + "name" : "058", + "id" : "058", "data" : [ [ "Perl", @@ -651,13 +944,9 @@ "Blog", 13 ] - ], - "id" : "058", - "name" : "058" + ] }, { - "name" : "057", - "id" : "057", "data" : [ [ "Perl", @@ -671,11 +960,12 @@ "Blog", 15 ] - ] + ], + "id" : "057", + "name" : "057" }, { "id" : "056", - "name" : "056", "data" : [ [ "Perl", @@ -689,10 +979,10 @@ "Blog", 17 ] - ] + ], + "name" : "056" }, { - "id" : "055", "name" : "055", "data" : [ [ @@ -707,7 +997,8 @@ "Blog", 14 ] - ] + ], + "id" : "055" }, { "data" : [ @@ -728,7 +1019,6 @@ "name" : "054" }, { - "id" : "053", "name" : "053", "data" : [ [ @@ -743,7 +1033,8 @@ "Blog", 15 ] - ] + ], + "id" : "053" }, { "data" : [ @@ -760,10 +1051,12 @@ 14 ] ], - "name" : "052", - "id" : "052" + "id" : "052", + "name" : "052" }, { + "name" : "051", + "id" : "051", "data" : [ [ "Perl", @@ -777,13 +1070,9 @@ "Blog", 11 ] - ], - "id" : "051", - "name" : "051" +