aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-11-26 09:51:57 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-11-26 09:51:57 +0000
commitdb886d6c81c3c7bdab16f236ebb2d7bf60de23c6 (patch)
tree07ba9d70bd4aaec526dc53bb90587292f6ff91e6
parent574a738969374d430eead6b2255161ed9fdd24da (diff)
downloadperlweeklychallenge-club-db886d6c81c3c7bdab16f236ebb2d7bf60de23c6.tar.gz
perlweeklychallenge-club-db886d6c81c3c7bdab16f236ebb2d7bf60de23c6.tar.bz2
perlweeklychallenge-club-db886d6c81c3c7bdab16f236ebb2d7bf60de23c6.zip
- Added solutions by Ulrich Rieke.
-rw-r--r--challenge-192/ulrich-rieke/cpp/ch-1.cpp33
-rw-r--r--challenge-192/ulrich-rieke/cpp/ch-2.cpp83
-rw-r--r--challenge-192/ulrich-rieke/haskell/ch-1.hs18
-rw-r--r--challenge-192/ulrich-rieke/haskell/ch-2.hs52
-rw-r--r--challenge-192/ulrich-rieke/perl/ch-1.pl30
-rw-r--r--challenge-192/ulrich-rieke/perl/ch-2.pl63
-rw-r--r--challenge-192/ulrich-rieke/raku/ch-1.raku19
-rw-r--r--challenge-192/ulrich-rieke/raku/ch-2.raku62
-rw-r--r--challenge-192/ulrich-rieke/rust/ch-1.rs32
-rw-r--r--challenge-192/ulrich-rieke/rust/ch-2.rs57
-rw-r--r--stats/pwc-current.json387
-rw-r--r--stats/pwc-language-breakdown-summary.json66
-rw-r--r--stats/pwc-language-breakdown.json1328
-rw-r--r--stats/pwc-leaders.json736
-rw-r--r--stats/pwc-summary-1-30.json104
-rw-r--r--stats/pwc-summary-121-150.json112
-rw-r--r--stats/pwc-summary-151-180.json40
-rw-r--r--stats/pwc-summary-181-210.json106
-rw-r--r--stats/pwc-summary-211-240.json104
-rw-r--r--stats/pwc-summary-241-270.json114
-rw-r--r--stats/pwc-summary-271-300.json22
-rw-r--r--stats/pwc-summary-31-60.json48
-rw-r--r--stats/pwc-summary-61-90.json108
-rw-r--r--stats/pwc-summary-91-120.json118
-rw-r--r--stats/pwc-summary.json614
25 files changed, 2462 insertions, 1994 deletions
diff --git a/challenge-192/ulrich-rieke/cpp/ch-1.cpp b/challenge-192/ulrich-rieke/cpp/ch-1.cpp
new file mode 100644
index 0000000000..f4ca6ba3bb
--- /dev/null
+++ b/challenge-192/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <cstdlib>
+#include <algorithm>
+#include <vector>
+
+int main( int argc , char * argv[] ) {
+ if ( argc != 2 ) {
+ std::cerr << "usage : <programname> <positive integer>\n" ;
+ return 1 ;
+ }
+ int number = std::atoi( argv[ 1 ] ) ;
+ std::vector<int> binaryDigits ;
+ while ( number != 0 ) {
+ binaryDigits.push_back( number % 2 ) ;
+ number /= 2 ;
+ }
+ std::reverse( binaryDigits.begin( ) , binaryDigits.end( ) ) ;
+ for ( int i = 0 ; i < binaryDigits.size( ) ; i++ ) {
+ if ( binaryDigits[ i ] == 0 )
+ binaryDigits[ i ] = 1 ;
+ else
+ binaryDigits[ i ] = 0 ;
+ }
+ std::reverse( binaryDigits.begin( ) , binaryDigits.end( ) ) ;
+ int sum = 0 ;
+ int multiplier = 1 ;
+ for ( int n : binaryDigits ) {
+ sum += n * multiplier ;
+ multiplier *= 2 ;
+ }
+ std::cout << sum << std::endl ;
+ return 0 ;
+}
diff --git a/challenge-192/ulrich-rieke/cpp/ch-2.cpp b/challenge-192/ulrich-rieke/cpp/ch-2.cpp
new file mode 100644
index 0000000000..2ad3f2ec97
--- /dev/null
+++ b/challenge-192/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,83 @@
+#include <vector>
+#include <algorithm>
+#include <numeric>
+#include <iostream>
+#include <string>
+#include <iterator>
+
+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 some numbers greater than or equal to 0!\n" ;
+ std::string line ;
+ std::getline( std::cin , line ) ;
+ std::vector<std::string> numberstrings( split( line , " ")) ;
+ std::vector<int> numbers ;
+ for ( auto s : numberstrings )
+ numbers.push_back( std::stoi( s ) ) ;
+ if ( std::accumulate( numbers.begin( ) , numbers.end( ) , 0 ) %
+ static_cast<int>( numbers.size( ) ) != 0 )
+ std::cout << -1 << std::endl ;
+ else {//all elements are equal
+ int first_element = *numbers.begin( ) ;
+ if ( std::all_of( numbers.begin( ) , numbers.end( ) , [first_element]
+ ( const int i ) { return i == first_element ; } )) {
+ std::cout << 0 << std::endl ;
+ }
+ else {//elements are not equal
+ int count = 0 ;
+ int start = *numbers.begin( ) ;
+ while ( ! std::all_of( numbers.begin( ) , numbers.end( ) , [start]
+ ( int i ) { return i == start ; })) {
+ int maximum = *std::max_element( numbers.begin( ) , numbers.end( ) ) ;
+ auto maxPos = std::find( numbers.begin( ) , numbers.end( ) , maximum ) ;
+ int thePos = static_cast<int>( std::distance( numbers.begin( ),
+ maxPos)) ;
+ numbers[ thePos ]-- ;
+ if ( thePos == 0 ) {
+ numbers[ 1 ]++ ;
+ }
+ else {
+ if ( thePos == static_cast<int>(numbers.size( ) - 1 )) {
+ numbers[ numbers.size( ) - 2]++ ;
+ }
+ else {
+ if ( numbers[ thePos - 1 ] < numbers[ thePos + 1] ) {
+ numbers[ thePos - 1 ]++ ;
+ }
+ else {
+ if ( numbers[ thePos - 1 ] > numbers[ thePos + 1 ] ) {
+ numbers[ thePos + 1 ]++ ;
+ }
+ else {//neighbouring elements are equal
+ int minimum = *std::max_element( numbers.begin( ) ,
+ numbers.end( ), []( int a , int b)
+ { return a < b ;} ) ;
+ auto minPos = std::find( numbers.begin( ) , numbers.end( ) ,
+ minimum ) ;
+ if ( minPos > maxPos )
+ numbers[ thePos + 1 ]++ ;
+ else
+ numbers[ thePos - 1 ]++ ;
+ }
+ }
+ }
+ }
+ count++ ;
+ start = *numbers.begin( ) ;
+ }
+ std::cout << count << std::endl ;
+ }
+ }
+ return 0 ;
+}
diff --git a/challenge-192/ulrich-rieke/haskell/ch-1.hs b/challenge-192/ulrich-rieke/haskell/ch-1.hs
new file mode 100644
index 0000000000..d4553ff6c5
--- /dev/null
+++ b/challenge-192/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,18 @@
+module Challenge192
+ where
+
+toBinaries :: Int -> [ Int ]
+toBinaries n = snd $ until ( ( == 0 ) . fst ) step ( n , [] )
+where
+ step :: ( Int , [Int] ) -> ( Int , [Int] )
+ step ( d , li ) = ( div d 2 , mod d 2 : li )
+
+myFlip :: [Int] -> [Int]
+myFlip list = map (\i -> if i == 1 then 0 else 1 ) list
+
+toDecimal :: [Int] -> Int
+toDecimal list = sum $ map (\p -> fst p * snd p ) $ zip ( iterate ( * 2 ) 1 )
+( reverse list )
+
+solution :: Int -> Int
+solution = toDecimal . myFlip . toBinaries
diff --git a/challenge-192/ulrich-rieke/haskell/ch-2.hs b/challenge-192/ulrich-rieke/haskell/ch-2.hs
new file mode 100644
index 0000000000..2fa4de367d
--- /dev/null
+++ b/challenge-192/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,52 @@
+module Challenge192_2
+ where
+import Data.List ( findIndex , (!!) )
+import Data.Maybe ( fromJust ) 
+
+solution :: [Int] -> Int
+solution list
+ |mod ( sum list ) ( length list ) /= 0 = -1
+ |all (\i -> i == head list ) list = 0
+ |otherwise = fst $ until ( myCondition . snd ) step ( 0 , list )
+ where
+ myCondition :: [Int] -> Bool
+ myCondition li = all (\n -> n == head li ) li
+ step :: ( Int , [Int] ) -> ( Int , [Int] )
+ step (d , l ) = ( d + 1 , transform l )
+
+compareNeighbours :: Int -> Int -> [Int] -> [Int]
+compareNeighbours maxIndex minIndex list
+ |list !! ( maxIndex - 1 ) < list !! ( maxIndex + 1 ) = take ( maxIndex
+ - 1 ) list ++ [ list !! ( maxIndex - 1 ) + 1 ] ++ [list !! maxIndex - 1]
+ ++ drop ( maxIndex + 1 ) list
+ |list !! ( maxIndex - 1 ) > list !! ( maxIndex + 1 ) = take maxIndex list
+ ++ [ list !! maxIndex - 1 ] ++ [ list !! ( maxIndex + 1 ) + 1 ] ++
+ drop ( maxIndex + 2 ) list
+ |otherwise = if minIndex < maxIndex then take ( maxIndex - 1 ) list ++
+ [ list !! ( maxIndex - 1 ) + 1 ] ++ [ list !! maxIndex - 1 ] ++ drop
+ ( maxIndex + 1 ) list else take maxIndex list ++ [ list !! maxIndex - 1 ]
+ ++ [ list !! ( maxIndex + 1 ) + 1 ] ++ drop ( maxIndex + 2 ) list
+transform :: [Int] -> [Int]
+transform list
+ |maxIndex == 0 = [head list - 1 ] ++ [list !! 1 + 1 ] ++ drop 2 list
+ |maxIndex == l - 1 = take ( l - 2 ) list ++ [ list !! ( l - 2 ) + 1 ] ++
+ [last list - 1]
+ |otherwise = compareNeighbours maxIndex minIndex list
+ where
+ l :: Int
+ l = length list
+ maxi :: Int
+ maxi = maximum list
+ maxIndex :: Int
+ maxIndex = fromJust $ findIndex ( == maxi ) list
+ mini :: Int
+ mini = minimum list
+ minIndex :: Int
+ minIndex = fromJust $ findIndex ( == mini ) list
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some integers greater than or equal to 0!"
+ numberline <- getLine
+ print $ solution $ map read $ words numberline
diff --git a/challenge-192/ulrich-rieke/perl/ch-1.pl b/challenge-192/ulrich-rieke/perl/ch-1.pl
new file mode 100644
index 0000000000..0e0d866e07
--- /dev/null
+++ b/challenge-192/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,30 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter a positive integer!" ;
+my $number = <STDIN> ;
+chomp $number ;
+my @binaryDigits ;
+while ( $number != 0 ) {
+ push @binaryDigits , $number % 2 ;
+ $number = int( $number / 2 ) ;
+}
+my @reversed = reverse @binaryDigits ;
+for my $pos ( 0..scalar( @reversed ) - 1 ) {
+ if ( $reversed[ $pos ] == 0 ) {
+ $reversed[ $pos ] = 1 ;
+ }
+ else {
+ $reversed[ $pos ] = 0 ;
+ }
+}
+my @afterFlip = reverse @reversed ;
+my $sum = 0 ;
+my $multiplier = 1 ;
+for my $n( @afterFlip ) {
+ $sum += $n * $multiplier ;
+ $multiplier *= 2 ;
+}
+say $sum ;
diff --git a/challenge-192/ulrich-rieke/perl/ch-2.pl b/challenge-192/ulrich-rieke/perl/ch-2.pl
new file mode 100644
index 0000000000..4599f82a6d
--- /dev/null
+++ b/challenge-192/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,63 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use List::Util qw ( max min sum all) ;
+
+#find a number in an array
+sub findIn {
+ my $array = shift ;
+ my $element = shift ;
+ my $pos = 0 ;
+ while ( $array->[ $pos ] != $element ) {
+ $pos++ ;
+ }
+ return $pos ;
+}
+
+say "Enter a list of integers greater than or equal to 0!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @numbers = split( /\s/ , $line ) ;
+#the sum of the array must be evenly divided by the number of elements
+if ( sum( @numbers ) % ( scalar( @numbers )) != 0 ) {
+ say -1 ;
+}
+elsif ( all { $_ == $numbers[0] } @numbers ) {
+ say 0 ;
+}
+else {
+ my $count = 0 ;
+ do {
+ my $maximum = max( @numbers ) ;
+ my $maxPos = findIn( \@numbers , $maximum ) ;
+ $numbers[ $maxPos ]-- ; #decrease the maximum element by one
+ if ( $maxPos == 0 ) { #maximum element is at the left edge
+ $numbers[1]++ ;
+ }
+ elsif ( $maxPos == (scalar( @numbers ) - 1 ) ) { #at the right edge
+ $numbers[-2]++ ;
+ }
+ else {#increase the smaller of the 2 neighbouring elements
+ if ( $numbers[ $maxPos - 1 ] < $numbers[ $maxPos + 1 ] ) {
+ $numbers[ $maxPos - 1 ]++ ;
+ }
+ elsif ( $numbers[ $maxPos - 1 ] > $numbers[ $maxPos + 1 ] ) {
+ $numbers[ $maxPos + 1 ]++ ;
+ }
+ else {#both neighbours are equal ; then increase the element to
+ #the side of the smallest element to avoid endless loops
+ my $minimum = min( @numbers ) ;
+ my $minPos = findIn( \@numbers , $minimum ) ;
+ if ( $minPos < $maxPos ) {
+ $numbers[ $maxPos - 1 ]++ ;
+ }
+ else {
+ $numbers[ $maxPos + 1 ]++ ;
+ }
+ }
+ }
+ $count++ ;
+ } while ( not ( all { $_ == $numbers[ 0 ] } @numbers ) ) ;
+ say $count ;
+}
diff --git a/challenge-192/ulrich-rieke/raku/ch-1.raku b/challenge-192/ulrich-rieke/raku/ch-1.raku
new file mode 100644
index 0000000000..be8899fa72
--- /dev/null
+++ b/challenge-192/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,19 @@
+use v6 ;
+
+say "Enter a positive integer!" ;
+my $line = $*IN.get ;
+while ( $line !~~ /^\d+$/ ) {
+ say "Enter a positive integer, re-enter!" ;
+ $line = $*IN.get ;
+}
+my $binaryStr = $line.Int.base( 2 ) ;
+my @digits = $binaryStr.comb ;
+for @digits <-> $digit {
+ if ( $digit == 0 ) {
+ $digit = 1 ;
+ }
+ else {
+ $digit = 0 ;
+ }
+}
+say @digits.join.parse-base( 2 ) ;
diff --git a/challenge-192/ulrich-rieke/raku/ch-2.raku b/challenge-192/ulrich-rieke/raku/ch-2.raku
new file mode 100644
index 0000000000..361da07d0d
--- /dev/null
+++ b/challenge-192/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,62 @@
+use v6 ;
+
+sub findIn( @haystack , $needle ) {
+ my $pos = 0 ;
+ while ( @haystack[ $pos ] != $needle ) {
+ $pos++ ;
+ }
+ return $pos ;
+}
+
+say "Please enter some numbers greater than or equal to zero!" ;
+my $line = $*IN.get ;
+my @numbers = $line.split( /\s/ ).map( {.Int} ) ;
+#if the sum of numbers cannot be evenly divided by the number of elements
+#there is no solution
+#otherwise: find the maximum of the numbers. Add 1 to the smaller of the
+#two neighbours if there are 2 , otherwise to the next cell to the left
+#or to the right if the maximum is at the end or the beginning of the list
+#if there are 2 neighbours and they are both equal find the minimum of the
+#list and subtract 1 from the neighbour on the side of the minimum; otherwise
+#one might incur endless loops
+if ( not (@numbers.sum %% @numbers.elems) ) {
+ say -1 ;
+}
+else {
+ if ( @numbers.grep( { $_ == @numbers[0] } ).elems == @numbers.elems ) {
+ say 0 ;
+ }
+ else {
+ my $count = 0 ;
+ my $len = @numbers.elems ;
+ repeat {
+ my $maximum = @numbers.max ;
+ my $maxIndex = findIn( @numbers, $maximum ) ;
+ @numbers[ $maxIndex ]-- ;
+ given $maxIndex {
+ when 0 { @numbers[1]++ }
+ when ($len - 1) { @numbers[ * -2 ]++ }
+ default {
+ if ( @numbers[ $maxIndex - 1 ] < @numbers[ $maxIndex + 1 ] ) {
+ @numbers[ $maxIndex - 1]++ ;
+ }
+ elsif ( @numbers[ $maxIndex - 1 ] > @numbers[ $maxIndex + 1 ] ) {
+ @numbers[ $maxIndex + 1 ]++ ;
+ }
+ else {
+ my $minimum = @numbers.min ;
+ my $minIndex = findIn( @numbers , $minimum ) ;
+ if ( $minIndex < $maxIndex ) {
+ @numbers[ $maxIndex - 1 ]++ ;
+ }
+ else {
+ @numbers[ $maxIndex + 1 ]++ ;
+ }
+ }
+ }
+ }
+ $count++ ;
+ } until ( @numbers.grep( { $_ == @numbers[ 0 ] } ).elems == $len ) ;
+ say $count ;
+ }
+}
diff --git a/challenge-192/ulrich-rieke/rust/ch-1.rs b/challenge-192/ulrich-rieke/rust/ch-1.rs
new file mode 100644
index 0000000000..690af16abf
--- /dev/null
+++ b/challenge-192/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,32 @@
+use std::io ;
+
+fn main() {
+ println!("Enter a positive integer!") ;
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_line : &str = &*inline ;
+ let mut number : i32 = entered_line.trim( ).parse::<i32>( ).unwrap( ) ;
+ let mut binary_digits : Vec<i32> = Vec::new( ) ;
+ while number != 0 {
+ binary_digits.push( number % 2 ) ;
+ number /= 2 ;
+ }
+ let mut reversed : Vec<i32> = Vec::new( ) ;
+ binary_digits.iter( ).rev( ).for_each( | i | reversed.push( *i ) ) ;
+ for pos in 0..reversed.len( ) {
+ if reversed[ pos ] == 0 {
+ reversed[ pos ] = 1 ;
+ }
+ else {
+ reversed[ pos ] = 0 ;
+ }
+ }
+ let mut sum : i32 = 0 ;
+ let mut multiplier : i32 = 1 ;
+ let mut iter = reversed.iter( ) ;
+ while let Some( n ) = iter.next_back( ) {
+ sum += *n * multiplier ;
+ multiplier *= 2 ;
+ }
+ println!("{}" , sum ) ;
+}
diff --git a/challenge-192/ulrich-rieke/rust/ch-2.rs b/challenge-192/ulrich-rieke/rust/ch-2.rs
new file mode 100644
index 0000000000..b21d81e624
--- /dev/null
+++ b/challenge-192/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,57 @@
+use std::io ;
+
+fn main() {
+ let mut inline : String = String::new( ) ;
+ println!("Please enter some integers, separated by blanks!") ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_line : &str = &*inline ;
+ let mut numbers : Vec<i32> = entered_line.split_whitespace( )
+ .map( | s | s.trim( ).parse::<i32>().unwrap( )).collect( ) ;
+ if numbers.iter( ).sum::<i32>( ) % (numbers.len( ) as i32 ) != 0 {
+ println!("-1") ;
+ }
+ //find the maximum number, add 1 to the smaller of the 2 neighbours,
+ //, subtract 1 from the maximum! if there is only one neighbour increment
+ //it! If there are 2 equal neighbours, look for the minimum and increment
+ //the neighbour at the "minimum side" to avoid possible endless loops!
+ else {
+ if numbers.iter( ).all( | s | *s == numbers[ 0 ] ) {
+ println!("0") ;
+ }
+ else {
+ let mut count : i32 = 0 ;
+ while ! numbers.iter( ).all( | i | *i == numbers[0] ) {
+ let maximum : i32 = *numbers.iter( ).max( ).unwrap( ) ;
+ let max_index : usize = numbers.iter( ).position( | &i | i ==
+ maximum ).unwrap( ) ;
+ numbers[max_index] -= 1 ;
+ match max_index {
+ 0 => { numbers[ 1 ] += 1 } ,
+ the_position if the_position == numbers.len( ) - 1 =>
+ { numbers[ the_position - 1 ] += 1 } ,
+ _ => {
+ match numbers[ max_index - 1 ] - numbers[max_index + 1] {
+ difference if difference < 0 => { numbers[ max_index - 1 ]
+ += 1 } ,
+ difference if difference > 0 => { numbers[ max_index + 1 ]
+ += 1 } ,
+ _ => {
+ let minimum : i32 = *numbers.iter( ).min( ).unwrap( ) ;
+ let min_index : usize = numbers.iter( ).position( | &i |
+ i == minimum ).unwrap( ) ;
+ if min_index > max_index {
+ numbers[ max_index + 1 ] += 1 ;
+ }
+ else {
+ numbers[ max_index - 1 ] += 1 ;
+ }
+ }
+ }
+ }
+ } ;
+ count += 1 ;
+ }
+ println!("{}" , count ) ;
+ }
+ }
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 2bbec04ece..4e6e2a0ae3 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,7 +1,4 @@
{
- "legend" : {
- "enabled" : 0
- },
"plotOptions" : {
"series" : {
"dataLabels" : {
@@ -11,18 +8,162 @@
"borderWidth" : 0
}
},
+ "chart" : {
+ "type" : "column"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 192"
+ },
"subtitle" : {
- "text" : "[Champions: 23] Last updated at 2022-11-26 09:18:30 GMT"
+ "text" : "[Champions: 24] Last updated at 2022-11-26 09:45:56 GMT"
+ },
+ "series" : [
+ {
+ "data" : [
+ {
+ "y" : 4,
+ "drilldown" : "Alexander Pankoff",
+ "name" : "Alexander Pankoff"
+ },
+ {
+ "drilldown" : "Ali Moradi",
+ "name" : "Ali Moradi",
+ "y" : 4
+ },
+ {
+ "y" : 1,
+ "drilldown" : "Dario Mazzeo",
+ "name" : "Dario Mazzeo"
+ },
+ {
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Humberto Massa",
+ "name" : "Humberto Massa",
+ "y" : 2
+ },
+ {
+ "drilldown" : "James Smith",
+ "name" : "James Smith",
+ "y" : 3
+ },
+ {
+ "name" : "Jorg Sommrey",
+ "drilldown" : "Jorg Sommrey",
+ "y" : 3
+ },
+ {
+ "name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld",
+ "y" : 5
+ },
+ {
+ "drilldown" : "Luca Ferrari",
+ "name" : "Luca Ferrari",
+ "y" : 8
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Mark Anderson",
+ "name" : "Mark Anderson"
+ },
+ {
+ "drilldown" : "Marton Polgar",
+ "name" : "Marton Polgar",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Mohammad S Anwar",
+ "name" : "Mohammad S Anwar",
+ "y" : 2
+ },
+ {
+ "name" : "Niels van Dijke",
+ "drilldown" : "Niels van Dijke",
+ "y" : 2
+ },
+ {
+ "y" : 1,
+ "drilldown" : "Olivier Delouya",
+ "name" : "Olivier Delouya"
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Peter Campbell Smith",
+ "name" : "Peter Campbell Smith"
+ },
+ {
+ "drilldown" : "Robbie Hatley",
+ "name" : "Robbie Hatley",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Robert DiCicco",
+ "name" : "Robert DiCicco",
+ "y" : 4
+ },
+ {
+ "y" : 4,
+ "name" : "Roger Bell_West",
+ "drilldown" : "Roger Bell_West"
+ },
+ {
+ "drilldown" : "Simon Proctor",
+ "name" : "Simon Proctor",
+ "y" : 2
+ },
+ {
+ "y" : 5,
+ "name" : "Stephen G. Lynn",
+ "drilldown" : "Stephen G. Lynn"
+ },
+ {
+ "drilldown" : "Tim Potapov",
+ "name" : "Tim Potapov",
+ "y" : 2
+ },
+ {
+ "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "y" : 4
+ },
+ {
+ "y" : 2,
+ "name" : "Vamsi Meenavilli",
+ "drilldown" : "Vamsi Meenavilli"
+ },
+ {
+ "y" : 3,
+ "name" : "W. Luis Mochan",
+ "drilldown" : "W. Luis Mochan"
+ }
+ ],
+ "colorByPoint" : 1,
+ "name" : "The Weekly Challenge - 192"
+ }
+ ],
+ "legend" : {
+ "enabled" : 0
+ },
+ "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/>"
+ "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/>"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
},
"drilldown" : {
"series" : [
{
- "id" : "Alexander Pankoff",
"data" : [
[
"Perl",
@@ -33,9 +174,12 @@
2
]
],
- "name" : "Alexander Pankoff"
+ "name" : "Alexander Pankoff",
+ "id" : "Alexander Pankoff"
},
{
+ "id" : "Ali Moradi",
+ "name" : "Ali Moradi",
"data" : [
[
"Perl",
@@ -45,19 +189,17 @@
"Raku",
2
]
- ],
- "name" : "Ali Moradi",
- "id" : "Ali Moradi"
+ ]
},
{
+ "id" : "Dario Mazzeo",
"name" : "Dario Mazzeo",
"data" : [
[
"Perl",
1
]
- ],
- "id" : "Dario Mazzeo"
+ ]
},
{
"id" : "E. Choroba",
@@ -70,16 +212,17 @@
]
},
{
+ "id" : "Humberto Massa",
"name" : "Humberto Massa",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Humberto Massa"
+ ]
},
{
+ "name" : "James Smith",
"id" : "James Smith",
"data" : [
[
@@ -90,11 +233,9 @@
"Blog",
1
]
- ],
- "name" : "James Smith"
+ ]
},
{
- "id" : "Jorg Sommrey",
"data" : [
[
"Perl",
@@ -105,6 +246,7 @@
1
]
],
+ "id" : "Jorg Sommrey",
"name" : "Jorg Sommrey"
},
{
@@ -127,6 +269,7 @@
},
{
"id" : "Luca Ferrari",
+ "name" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -136,30 +279,31 @@
"Blog",
6
]
- ],
- "name" : "Luca Ferrari"
+ ]
},
{
- "id" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
],
+ "id" : "Mark Anderson",
"name" : "Mark Anderson"
},
{
"name" : "Marton Polgar",
+ "id" : "Marton Polgar",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Marton Polgar"
+ ]
},
{
+ "id" : "Mohammad S Anwar",
+ "name" : "Mohammad S Anwar",
"data" : [
[
"Perl",
@@ -169,32 +313,29 @@
"Raku",
1
]
- ],
- "name" : "Mohammad S Anwar",
- "id" : "Mohammad S Anwar"
+ ]
},
{
+ "id" : "Niels van Dijke",
+ "name" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Niels van Dijke",
- "id" : "Niels van Dijke"
+ ]
},
{
- "id" : "Olivier Delouya",
- "name" : "Olivier Delouya",
"data" : [
[
"Perl",
1
]
- ]
+ ],
+ "name" : "Olivier Delouya",
+ "id" : "Olivier Delouya"
},
{
- "id" : "Peter Campbell Smith",
"data" : [
[
"Perl",
@@ -205,11 +346,12 @@
1
]
],
+ "id" : "Peter Campbell Smith",
"name" : "Peter Campbell Smith"
},
{
- "id" : "Robbie Hatley",
"name" : "Robbie Hatley",
+ "id" : "Robbie Hatley",
"data" : [
[
"Perl",
@@ -232,6 +374,7 @@
]
},
{
+ "name" : "Roger Bell_West",
"id" : "Roger Bell_West",
"data" : [
[
@@ -242,22 +385,19 @@
"Raku",
2
]
- ],
- "name" : "Roger Bell_West"
+ ]
},
{
+ "name" : "Simon Proctor",
+ "id" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
- ],
- "name" : "Simon Proctor",
- "id" : "Simon Proctor"
+ ]
},
{
- "id" : "Stephen G. Lynn",
- "name" : "Stephen G. Lynn",
"data" : [
[