diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-12-19 02:00:49 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-12-19 02:00:49 +0000 |
| commit | 60c8fe6ec139ec65766bc30e41b50c2582ddf244 (patch) | |
| tree | 4637d500e0447c9d7d2c3c0f12542c02e5f8da1b | |
| parent | f85ce97668c98085f0127ff994ac8ce40e261da4 (diff) | |
| download | perlweeklychallenge-club-60c8fe6ec139ec65766bc30e41b50c2582ddf244.tar.gz perlweeklychallenge-club-60c8fe6ec139ec65766bc30e41b50c2582ddf244.tar.bz2 perlweeklychallenge-club-60c8fe6ec139ec65766bc30e41b50c2582ddf244.zip | |
- Added solutions by Laurent Rosenfeld.
- Added solutions by Ulrich Rieke.
29 files changed, 1953 insertions, 1495 deletions
diff --git a/challenge-248/laurent-rosenfeld/blog.txt b/challenge-248/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..ac370f6989 --- /dev/null +++ b/challenge-248/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/laurent_r/2023/12/perl-weekly-challenge-248-shortest-distance.html diff --git a/challenge-248/laurent-rosenfeld/perl/ch-1.pl b/challenge-248/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..3f17cfa906 --- /dev/null +++ b/challenge-248/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,26 @@ +use strict; +use warnings; +use feature 'say'; + +sub shortest_distance { + my ($char, $str) = @_; + my @result; + my $max_idx = length($str) - 1; + for my $i (0..$max_idx) { + my $next = index ($str, $char, $i); + my $prev = rindex( $str, $char, $i); + push @result, abs($i - $next) and next if $prev < 0; + push @result, abs($i - $prev) and next if $next < 0; + my $dist = abs($i - $next) < abs($i - $prev) ? + abs($i - $next) : abs($i - $prev); + push @result, $dist; + } + return "@result"; +} + +my @tests = ( { str => "loveleetcode", char => "e" }, + { str => "aaab", char => "b" } ); +for my $t (@tests) { + printf "%-1s - %-15s => ", $t->{"char"}, $t->{"str"}; + say shortest_distance $t->{"char"}, $t->{"str"}; +} diff --git a/challenge-248/laurent-rosenfeld/raku/ch-1.raku b/challenge-248/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..4909cf9e3a --- /dev/null +++ b/challenge-248/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,22 @@ +sub shortest-distance ($char, $str) { + my @result; + for 0..^$str.chars -> $i { + my $next = $str.index($char, $i); + my $prev = $str.rindex($char, $i); + push @result, abs($i - $next) and next + unless defined $prev; + push @result, abs($i - $prev) and next + unless defined $next; + my $dist = abs($i - $next) < abs($i - $prev) ?? + abs($i - $next) !! abs($i - $prev); + push @result, $dist; + } + return "@result[]"; +} + +my @tests = { str => "loveleetcode", char => "e" }, + { str => "aaab", char => "b"}; +for @tests -> %test { + printf "%-1s - %-15s => ", %test{"char"}, %test{"str"}; + say shortest-distance %test{"char"}, %test{"str"}; +} diff --git a/challenge-248/ulrich-rieke/cpp/ch-1.cpp b/challenge-248/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..adda570afd --- /dev/null +++ b/challenge-248/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,52 @@ +#include <iostream>
+#include <vector>
+#include <string>
+#include <algorithm>
+
+std::vector<std::string> split( const std::string & startline ,
+ const std::string & sep ) {
+ std::vector<std::string> separated ;
+ std::string::size_type start { 0 } ;
+ std::string::size_type pos ;
+ do {
+ pos = startline.find_first_of( sep , start ) ;
+ separated.push_back( startline.substr(start , pos - start )) ;
+ start = pos + 1 ;
+ } while ( pos != std::string::npos ) ;
+ return separated ;
+}
+
+int main( ) {
+ std::cout << "Enter a string and a letter from this string, separated by blank!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ std::vector<std::string> parts ( split( line, " " ) ) ;
+ std::string searchstring { parts[0] } ;
+ std::string letter { parts[1] } ;
+ std::vector<int> letterpositions ;
+ for ( int i = 0 ; i < searchstring.length( ) ; i++ ) {
+ if ( searchstring.substr( i , 1 ) == letter )
+ letterpositions.push_back( i ) ;
+ }
+ for ( int n : letterpositions )
+ std ::cout << n << " " ;
+ std::cout << '\n' ;
+ std::vector<int> result ;
+ for ( int i = 0 ; i < searchstring.length( ) ; i++ ) {
+ if ( searchstring.substr( i , 1 ) != letter ) {
+ std::vector<int> differences ;
+ for ( int p = 0 ; p < letterpositions.size( ) ; p++ )
+ differences.push_back( abs( letterpositions[p] - i ) ) ;
+ result.push_back( *std::min_element( differences.begin( ) , differences.end( ) )) ;
+ }
+ else {
+ result.push_back( 0 ) ;
+ }
+ }
+ std::cout << "( " ;
+ for ( int i : result ) {
+ std::cout << i << " " ;
+ }
+ std::cout << " )\n" ;
+ return 0 ;
+}
diff --git a/challenge-248/ulrich-rieke/cpp/ch-2.cpp b/challenge-248/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..a20957bbd9 --- /dev/null +++ b/challenge-248/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,59 @@ +#include <iostream>
+#include <string>
+#include <vector>
+
+std::vector<std::string> split( const std::string & startline ,
+ const std::string & sep ) {
+ std::vector<std::string> separated ;
+ std::string::size_type start { 0 } ;
+ std::string::size_type pos ;
+ do {
+ pos = startline.find_first_of( sep , start ) ;
+ separated.push_back( startline.substr(start , pos - start )) ;
+ start = pos + 1 ;
+ } while ( pos != std::string::npos ) ;
+ return separated ;
+}
+
+void print( const std::vector<int> & numbers ) {
+ std::cout << " ( " ;
+ for ( int i : numbers ) {
+ std::cout << i << " " ;
+ }
+ std::cout << ")\n" ;
+}
+
+int main( ) {
+ std::cout << "Enter a matrix by inputting an equal number of integers per line!\n" ;
+ std::cout << "Enter <return> to end!\n" ;
+ std::vector<std::vector<int>> matrix ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ while ( line.length( ) > 0 ) {
+ std::vector<std::string> linenumbers ( split( line , " " ) ) ;
+ std::vector<int> numbers ;
+ for ( auto s : linenumbers )
+ numbers.push_back( std::stoi( s ) ) ;
+ matrix.push_back( numbers ) ;
+ std::getline( std::cin , line ) ;
+ }
+ int matrixlen = matrix.size( ) ;
+ int rowlen = matrix[0].size( ) ;
+ std::vector<std::vector<int>> result ;
+ for ( int r = 0 ; r < matrixlen - 1 ; r++ ) {
+ std::vector<int> resultline ;
+ for ( int col = 0 ; col < rowlen - 1 ; col++ ) {
+ int sum = matrix[ r ][col] + matrix[r][ col + 1 ] +
+ matrix[ r + 1][ col ] + matrix[ r + 1 ][ col + 1 ] ;
+ resultline.push_back( sum ) ;
+ }
+ result.push_back( resultline ) ;
+ }
+ std::cout << "(\n" ;
+ for ( const auto & numline : result ) {
+ print( numline ) ;
+ }
+ std::cout << ")\n" ;
+ return 0 ;
+}
+
diff --git a/challenge-248/ulrich-rieke/haskell/ch-1.hs b/challenge-248/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..190c1f498a --- /dev/null +++ b/challenge-248/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,17 @@ +module Challenge248
+ where
+
+solution :: String -> Char -> [Int]
+solution stri letter = map (\i -> minimum $ map (\d -> abs ( d - i ) ) positions )
+ [0..length stri - 1]
+ where
+ positions :: [Int]
+ positions = map snd $ filter ((letter == ) . fst ) $ zip stri [0, 1..]
+
+main :: IO ( )
+main = do
+ putStrLn "Please enter a string and a letter from the string, separated by a blank!"
+ input <- getLine ;
+ let searchstring = head $ words input
+ char_wanted = head $ last $ words input
+ print $ solution searchstring char_wanted
diff --git a/challenge-248/ulrich-rieke/haskell/ch-2.hs b/challenge-248/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..d333896311 --- /dev/null +++ b/challenge-248/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,41 @@ +module Challenge248_2
+ where
+import Data.List ( intercalate , (!!) )
+import Data.List.Split ( chunksOf )
+
+getMultipleLines :: Int -> IO [String]
+getMultipleLines n
+ |n <= 0 = return []
+ |otherwise = do
+ x <- getLine
+ xs <- getMultipleLines ( n - 1 )
+ let ret = (x:xs)
+ return ret
+
+convert :: [String] -> [[Int]]
+convert list = map (\li -> map read $ words li ) list
+
+printRow :: [Int] -> String
+printRow row = " (" ++ (intercalate ", " $ map show row ) ++ ")"
+
+solution :: [[Int]] -> [[Int]]
+solution numberlist = chunksOf ( l - 1 ) [(numberlist !! r !! col) +
+ ( numberlist !! r !! (col + 1 ) ) + ( numberlist !! ( r + 1 ) !! col ) +
+ ( numberlist !! (r + 1) !! (col + 1 )) | r <- [0..length numberlist - 2] , col <- [0..l
+ - 2] ]
+ where
+ l :: Int
+ l = length ( numberlist !! 0 )
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a matrix of an equal number of integers per line!"
+ putStrLn "How many lines do you want to enter?"
+ linenum <- getLine
+ numberLines <- getMultipleLines ( read linenum )
+ let matrix = convert numberLines
+ sums = solution matrix
+ putStrLn "(" ;
+ mapM_ (\subli -> putStrLn $ printRow subli ) sums
+ putStrLn ")"
+
diff --git a/challenge-248/ulrich-rieke/perl/ch-1.pl b/challenge-248/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..ac5ce4baa4 --- /dev/null +++ b/challenge-248/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( min ) ;
+
+say "Enter a string and a letter from this string , separated by a blank!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @parts = split( /\s+/ , $line ) ;
+my $string = $parts[0] ;
+my $letter = $parts[ 1 ] ;
+my @letterpositions ;
+my $pos = 0 ;
+for my $current ( split( // , $string ) ) {
+ if ( $current eq $letter ) {
+ push @letterpositions , $pos ;
+ }
+ $pos++ ;
+}
+my @result ;
+$pos = 0 ;
+for my $current ( split( // , $string )) {
+ if ( $current ne $letter ) {
+ my @distances = map { abs( $pos - $_ ) } @letterpositions ;
+ push @result , min( @distances ) ;
+ }
+ else {
+ push @result , 0 ;
+ }
+ $pos++ ;
+}
+say ( "(" . join( ',' , @result) . ")" ) ;
+
diff --git a/challenge-248/ulrich-rieke/perl/ch-2.pl b/challenge-248/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..38cb396976 --- /dev/null +++ b/challenge-248/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter some rows of the same number of integers each!" ;
+say "Enter <return> to end entry!" ;
+my @matrix ;
+my $line = <STDIN> ;
+chomp $line ;
+while ( $line ) {
+ my @numbers = split( /\s/ , $line ) ;
+ push @matrix , \@numbers ;
+ $line = <STDIN> ;
+ chomp $line ;
+}
+my $matrixlen = scalar( @matrix ) ;
+my $rowlen = scalar( @{$matrix[0]} ) ;
+my @result ;
+for my $r (0..$matrixlen - 2 ) {
+ my @resultline ;
+ for my $col( 0..$rowlen - 2 ) {
+ my $sum = $matrix[$r]->[$col] + $matrix[$r]->[$col + 1] +
+ $matrix[ $r + 1]->[$col] + $matrix[$r + 1]->[$col + 1] ;
+ push @resultline , $sum ;
+ }
+ push @result , \@resultline ;
+}
+say "(" ;
+for my $subarray ( @result ) {
+ say ( " (" . join( ',' , @$subarray) . ")" ) ;
+}
+say ")" ;
+
diff --git a/challenge-248/ulrich-rieke/raku/ch-1.raku b/challenge-248/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..ab5981d2ce --- /dev/null +++ b/challenge-248/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,28 @@ +use v6 ;
+
+say "Enter a string and a letter from this string, separated by a blank!" ;
+my $line = $*IN.get ;
+my @parts = $line.words ;
+my $string = @parts[ 0 ] ;
+my $letter = @parts[ 1 ] ;
+my @result ;
+my @letterpositions ;
+my $pos = 0 ;
+for $string.comb -> $current {
+ if ( $current eq $letter ) {
+ @letterpositions.push( $pos ) ;
+ }
+ $pos++ ;
+}
+$pos = 0 ;
+for $string.comb -> $current {
+ if ( $current ne $letter ) {
+ my @differences = @letterpositions.map( { abs( $_ - $pos) } ) ;
+ @result.push( @differences.min ) ;
+ }
+ else {
+ @result.push( 0 ) ;
+ }
+ $pos++ ;
+}
+say ( "(" ~ @result.join( ',' ) ~ ")" ) ;
diff --git a/challenge-248/ulrich-rieke/raku/ch-2.raku b/challenge-248/ulrich-rieke/raku/ch-2.raku new file mode 100755 index 0000000000..f97504a009 --- /dev/null +++ b/challenge-248/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,29 @@ +use v6 ;
+
+say "Enter a matrix with some lines each consisting the same number of integers!" ;
+say "Enter <return> to end entry!" ;
+my $line = $*IN.get ;
+my @matrix ;
+while ( $line ) {
+ @matrix.push( $line.words.map( {.Int} )) ;
+ $line = $*IN.get ;
+}
+my $matrix_len = @matrix.elems ;
+my $row_len = @matrix[0].elems ;
+my @result ;
+for ( 0..$matrix_len - 2 ) -> $row {
+ my @resultline ;
+ for ( 0..$row_len - 2 ) -> $col {
+ my $sum = @matrix[ $row ][ $col ] + @matrix[$row][$col + 1 ] +
+ @matrix[ $row + 1 ][ $col ] + @matrix[ $row + 1 ][$col + 1] ;
+ @resultline.push( $sum ) ;
+ }
+ @result.push( @resultline ) ;
+}
+say "(" ;
+for @result -> @columns {
+ say ( " (" ~ @columns.join( ',' ) ~ ")" ) ;
+}
+say ")" ;
+
+
diff --git a/challenge-248/ulrich-rieke/rust/ch-1.rs b/challenge-248/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..0a1305039b --- /dev/null +++ b/challenge-248/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,31 @@ +use std::io ; + +fn main() { + println!("Enter a string and, separated by a blank, a letter from that string!"); + let mut inline : String = String::new( ) ; + io::stdin( ).read_line( &mut inline ).unwrap( ) ; + let entered_line : &str = &*inline ; + let strings : Vec<&str> = entered_line.split_whitespace( ).map( | s | + s.trim( ) ).collect( ) ; + let searchstring : &str = strings[0] ; + let second_string : &str = strings[1] ; + let mut chars = second_string.chars( ) ; + let char_wanted = chars.next( ).unwrap( ) ; + let mut character_pos : Vec<i16> = Vec::new( ) ; + searchstring.chars( ).enumerate( ).filter( | el | el.1 == + char_wanted ).for_each( | el | character_pos.push( el.0 as i16 ) ) ; + let mut result : Vec<u16> = Vec::new( ) ; + let mut pos : usize = 0 ; + for c in searchstring.chars( ) { + if c != char_wanted { + let min_distance = character_pos.iter( ).map( | n | (pos as i16).abs_diff( + *n as i16 )).min( ).unwrap( ) ; + result.push( min_distance ) ; + } + else { + result.push( 0u16 ) ; + } + pos += 1 ; + } + println!("{:?}" , result ) ; +} diff --git a/challenge-248/ulrich-rieke/rust/ch-2.rs b/challenge-248/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..09944e6337 --- /dev/null +++ b/challenge-248/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,42 @@ +use std::io ; +use std::io::BufRead ; + +fn main() -> io::Result<( )> { + println!("Please enter integers as rows of a matrix, separated by blanks!") ; + println!("Enter <return> to end!" ) ; + let mut lines = io::stdin( ).lock( ).lines( ) ; + let mut user_input = String::new( ) ; + while let Some( line ) = lines.next( ) { + let last_input = line.unwrap( ) ; + if last_input.len( ) == 0 { + break ; + } + else { + user_input.push_str("\n" ) ; + } + user_input.push_str( &last_input ) ; + } + let all_rows : Vec<&str> = user_input.split( "\n" ).collect( ) ; + let mut matrix : Vec<Vec<i32>> = Vec::new( ) ; + for a_row in &all_rows { + if a_row.len( ) > 0 { + let number_row : Vec<i32> = a_row.split_whitespace( ).map( | s | + s.trim( ).parse::<i32>( ).unwrap( )).collect( ) ; + matrix.push( number_row ) ; + } + } + let matrix_len : usize = matrix.len( ) ; + let row_len : usize = matrix[0].len( ) ; + let mut result : Vec<Vec<i32>> = Vec::new( ) ; + for r in 0..matrix_len - 1 { + let mut result_line : Vec<i32> = Vec::new( ) ; + for col in 0..row_len - 1 { + let sum = matrix[r][col] + matrix[r][col + 1] + matrix[r + 1][col] + + matrix[r + 1][col + 1] ; + result_line.push( sum ) ; + } + result.push( result_line ) ; + } + println!("{:?}" , result ) ; + Ok(()) +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 5495d17f4d..761e7ad81b 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,130 +1,58 @@ { - "xAxis" : { - "type" : "category" - }, - "tooltip" : { - "followPointer" : 1, - "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/>" - }, "legend" : { "enabled" : 0 }, - "chart" : { - "type" : "column" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "title" : { - "text" : "The Weekly Challenge - 248" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "series" : [ - { - "data" : [ - { - "name" : "Bob Lied", - "y" : 2, - "drilldown" : "Bob Lied" - }, - { - "drilldown" : "David Ferrone", - "name" : "David Ferrone", - "y" : 2 - }, - { - "name" : "E. Choroba", - "y" : 2, - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Luca Ferrari", - "y" : 10, - "name" : "Luca Ferrari" - }, - { - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson", - "y" : 2 - }, - { - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke", - "y" : 2 - }, - { - "drilldown" : "Peter Campbell Smith", - "y" : 3, - "name" : "Peter Campbell Smith" - }, - { - "drilldown" : "Peter Meszaros", - "y" : 2, - "name" : "Peter Meszaros" - }, - { - "name" : "Thomas Kohler", - "y" : 4, - "drilldown" : "Thomas Kohler" - }, - { - "y" : 3, - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" - } - ], - "name" : "The Weekly Challenge - 248", - "colorByPoint" : 1 - } - ], - "subtitle" : { - "text" : "[Champions: 10] Last updated at 2023-12-18 20:48:20 GMT" - }, "drilldown" : { "series" : [ { - "name" : "Bob Lied", "data" : [ [ "Perl", 2 ] ], + "name" : "Bob Lied", "id" : "Bob Lied" }, { - "id" : "David Ferrone", "name" : "David Ferrone", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "David Ferrone" }, { + "id" : "E. Choroba", "name" : "E. Choroba", "data" : [ [ "Perl", 2 ] + ] + }, + { + "id" : "Laurent Rosenfeld", + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 1 + ], + [ + "Blog", + 1 + ] ], - "id" : "E. Choroba" + "name" : "Laurent Rosenfeld" }, { - "id" : "Luca Ferrari", "name" : "Luca Ferrari", "data" : [ [ @@ -135,29 +63,31 @@ "Blog", 8 ] - ] + ], + "id" : "Luca Ferrari" }, { + "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], - "name" : "Mark Anderson", "id" : "Mark Anderson" }, { - "id" : "Niels van Dijke", + "name" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] ], - "name" : "Niels van Dijke" + "id" : "Niels van Dijke" }, { + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -168,18 +98,17 @@ 1 ] ], - "name" : "Peter Campbell Smith", "id" : "Peter Campbell Smith" }, { + "id" : "Peter Meszaros", "name" : "Peter Meszaros", "data" : [ [ "Perl", 2 ] - ], - "id" : "Peter Meszaros" + ] }, { "data" : [ @@ -196,6 +125,20 @@ "id" : "Thomas Kohler" }, { + "name" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Ulrich Rieke" + }, + { "id" : "W. Luis Mochan", "data" : [ [ @@ -210,5 +153,104 @@ "name" : "W. Luis Mochan" } ] + }, + "chart" : { + "type" : "column" + }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + }, + "series" : [ + { + "data" : [ + { + "name" : "Bob Lied", + "drilldown" : "Bob Lied", + "y" : 2 + }, + { + "y" : 2, + "name" : "David Ferrone", + "drilldown" : "David Ferrone" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 2 + }, + { + "y" : 3, + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld" + }, + { + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari", + "y" : 10 + }, + { + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "y" : 3, + "name" : "Peter Campbell Smith", + "drilldown" : "Peter Campbell Smith" + }, + { + "y" : 2, + "name" : "Peter Meszaros", + "drilldown" : "Peter Meszaros" + }, + { + "name" : "Thomas Kohler", + "drilldown" : "Thomas Kohler", + "y" : 4 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan", + "y" : 3 + } + ], + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 248" + } + ], + "xAxis" : { + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "subtitle" : { + "text" : "[Champions: 12] Last updated at 2023-12-19 01:57:51 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 248" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index b5be15eb70..02835640c0 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, - "legend" : { - "enabled" : "false" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" + "title" : { |
