aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-10-07 23:28:47 +0100
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-10-07 23:28:47 +0100
commitcf2dbf376ff18f6927327e27e4e2cee16295ab88 (patch)
tree0251e248497f7f4ae63c6faa389f286976c9cee7
parent9b5af89cb0d8d882b42981ab999e29af04b6134b (diff)
downloadperlweeklychallenge-club-cf2dbf376ff18f6927327e27e4e2cee16295ab88.tar.gz
perlweeklychallenge-club-cf2dbf376ff18f6927327e27e4e2cee16295ab88.tar.bz2
perlweeklychallenge-club-cf2dbf376ff18f6927327e27e4e2cee16295ab88.zip
- Added solutions by Eric Cheung.
- Added solutions by Ulrich Rieke. - Added solutions by PokGoPun. - Added solutions by Matthias Muth. - Added solutions by E. Choroba. - Added solutions by Lubos Kolouch. - Added solutions by Luca Ferrari. - Added solutions by Peter Pentchev. - Added solutions by Conor Hoekstra. - Added solutions by Peter Campbell Smith. - Added solutions by David Ferrone.
-rwxr-xr-xchallenge-290/eric-cheung/python/ch-1.py19
-rwxr-xr-xchallenge-290/eric-cheung/python/ch-2.py14
-rwxr-xr-xchallenge-290/ulrich-rieke/cpp/ch-1.cpp39
-rwxr-xr-xchallenge-290/ulrich-rieke/cpp/ch-2.cpp52
-rwxr-xr-xchallenge-290/ulrich-rieke/haskell/ch-1.hs19
-rwxr-xr-xchallenge-290/ulrich-rieke/haskell/ch-2.hs31
-rwxr-xr-xchallenge-290/ulrich-rieke/perl/ch-1.pl22
-rwxr-xr-xchallenge-290/ulrich-rieke/perl/ch-2.pl52
-rwxr-xr-xchallenge-290/ulrich-rieke/raku/ch-1.raku18
-rwxr-xr-xchallenge-290/ulrich-rieke/raku/ch-2.raku40
-rwxr-xr-xchallenge-290/ulrich-rieke/rust/ch-1.rs23
-rwxr-xr-xchallenge-290/ulrich-rieke/rust/ch-2.rs50
-rw-r--r--stats/pwc-challenge-289.json733
-rw-r--r--stats/pwc-current.json672
-rw-r--r--stats/pwc-language-breakdown-2019.json624
-rw-r--r--stats/pwc-language-breakdown-2020.json402
-rw-r--r--stats/pwc-language-breakdown-2021.json430
-rw-r--r--stats/pwc-language-breakdown-2022.json754
-rw-r--r--stats/pwc-language-breakdown-2023.json754
-rw-r--r--stats/pwc-language-breakdown-2024.json645
-rw-r--r--stats/pwc-language-breakdown-summary.json62
-rw-r--r--stats/pwc-leaders.json480
-rw-r--r--stats/pwc-summary-1-30.json50
-rw-r--r--stats/pwc-summary-121-150.json20
-rw-r--r--stats/pwc-summary-151-180.json62
-rw-r--r--stats/pwc-summary-181-210.json100
-rw-r--r--stats/pwc-summary-211-240.json118
-rw-r--r--stats/pwc-summary-241-270.json110
-rw-r--r--stats/pwc-summary-271-300.json94
-rw-r--r--stats/pwc-summary-301-330.json60
-rw-r--r--stats/pwc-summary-31-60.json106
-rw-r--r--stats/pwc-summary-61-90.json32
-rw-r--r--stats/pwc-summary-91-120.json32
-rw-r--r--stats/pwc-summary.json50
-rw-r--r--stats/pwc-yearly-language-summary.json88
35 files changed, 3714 insertions, 3143 deletions
diff --git a/challenge-290/eric-cheung/python/ch-1.py b/challenge-290/eric-cheung/python/ch-1.py
new file mode 100755
index 0000000000..7dbc4d7262
--- /dev/null
+++ b/challenge-290/eric-cheung/python/ch-1.py
@@ -0,0 +1,19 @@
+
+from itertools import combinations
+
+def IsDoubleExist (arrInput):
+ return arrInput[0] == 2 * arrInput[1]
+
+## arrInts = [6, 2, 3, 3] ## Example 1
+## arrInts = [3, 1, 4, 13] ## Example 2
+arrInts = [2, 1, 4, 2] ## Example 3
+
+arrCombList = combinations(arrInts, 2)
+
+bFlag = False
+for arrLoop in list(arrCombList):
+ if IsDoubleExist (arrLoop):
+ bFlag = True
+ break
+
+print (bFlag)
diff --git a/challenge-290/eric-cheung/python/ch-2.py b/challenge-290/eric-cheung/python/ch-2.py
new file mode 100755
index 0000000000..1812e04fba
--- /dev/null
+++ b/challenge-290/eric-cheung/python/ch-2.py
@@ -0,0 +1,14 @@
+
+def GetSumDigits (nInput):
+ return sum([int(strDigit) for strDigit in str(nInput)])
+
+## strInput = "17893729974" ## Example 1
+## strInput = "4137 8947 1175 5904" ## Example 2
+strInput = "4137 8974 1175 5904" ## Example 3
+
+strInputRev = "".join([strLoop for strLoop in strInput if strLoop.isdigit()])
+
+nPayLoad = int(strInputRev[-1])
+nSum = sum([GetSumDigits(int(strLoop) * (2 if nIndx % 2 == 0 else 1)) for nIndx, strLoop in enumerate(strInputRev[:-1][::-1])])
+
+print ((nSum + nPayLoad) % 10 == 0)
diff --git a/challenge-290/ulrich-rieke/cpp/ch-1.cpp b/challenge-290/ulrich-rieke/cpp/ch-1.cpp
new file mode 100755
index 0000000000..5256cd8161
--- /dev/null
+++ b/challenge-290/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,39 @@
+#include <iostream>
+#include <string>
+#include <sstream>
+#include <vector>
+
+std::vector<std::string> split( const std::string & text , char delimiter ) {
+ std::vector<std::string> tokens ;
+ std::istringstream istr { text } ;
+ std::string word ;
+ while ( std::getline( istr , word , delimiter )) {
+ tokens.push_back( word ) ;
+ }
+ return tokens ;
+}
+
+int 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 v : tokens )
+ numbers.push_back( std::stoi( v ) ) ;
+ int len = numbers.size( ) ;
+ bool result = false ;
+ for ( int i = 0 ; i < len - 1 ; i++ ) {
+ if ( numbers[i] > 1 ) {
+ for ( int j = i + 1 ; j < len ; j++ ) {
+ if ( numbers[i] == 2 * numbers[j] ) {
+ result = true ;
+ break ;
+ }
+ }
+ }
+ }
+ std::cout << std::boolalpha << result << '\n' ;
+ return 0 ;
+}
+
diff --git a/challenge-290/ulrich-rieke/cpp/ch-2.cpp b/challenge-290/ulrich-rieke/cpp/ch-2.cpp
new file mode 100755
index 0000000000..7d2719a20e
--- /dev/null
+++ b/challenge-290/ulrich-rieke/cpp/ch-2.cpp
@@ -0,0 +1,52 @@
+#include <iostream>
+#include <string>
+#include <algorithm>
+#include <regex>
+#include <vector>
+#include <numeric>
+
+int digitsum( int number ) {
+ int sum = 0 ;
+ while ( number != 0 ) {
+ sum += number % 10 ;
+ number /= 10 ;
+ }
+ return sum ;
+}
+
+int main( ) {
+ std::cout << "Enter a term consisting of digits only!\n" ;
+ std::string term ;
+ std::getline( std::cin , term ) ;
+ std::reverse( term.begin( ) , term.end( ) ) ;
+ int payload = std::stoi(term.substr( 0 , 1 )) ;
+ int count = 1 ;
+ std::vector<int> sums ;
+ std::string num_pattern = "\\d" ;
+ auto numberpattern = std::regex( num_pattern ) ;
+ for ( int i = 1 ; i < term.length( ) ; i++ ) {
+ if ( std::regex_match( term.substr( i , 1 ) , numberpattern ) ) {
+ int number = std::stoi(term.substr( i , 1 )) ;
+ if ( count % 2 == 1 ) {
+ int localsum = 2 * number ;
+ if ( localsum < 10 ) {
+ sums.push_back( localsum ) ;
+ }
+ else {
+ int the_sum = digitsum( localsum ) ;
+ sums.push_back( the_sum ) ;
+ }
+ }
+ else {
+ sums.push_back( number ) ;
+ }
+ count++ ;
+ }
+ }
+ int totalsum = std::accumulate( sums.begin( ) , sums.end( ) , 0 ) ;
+ std::cout << std::boolalpha << ((( totalsum + payload ) % 10) == 0) <<
+ '\n' ;
+ return 0 ;
+}
+
+
diff --git a/challenge-290/ulrich-rieke/haskell/ch-1.hs b/challenge-290/ulrich-rieke/haskell/ch-1.hs
new file mode 100755
index 0000000000..0059d553fe
--- /dev/null
+++ b/challenge-290/ulrich-rieke/haskell/ch-1.hs
@@ -0,0 +1,19 @@
+module Challenge290
+ where
+import Data.List ((!!))
+
+makePairs :: [Int] ->[(Int , Int)]
+makePairs list = [(list !! i , list !! j) | i <- [0..l - 2] , j <- [i + 1 ..
+ l - 1]]
+ where
+ l = length list
+
+solution :: [Int] -> Bool
+solution list = any (\p -> fst p == (2 * ( snd p )) ) $ makePairs list
+
+main :: IO ( )
+main = do
+ putStrLn "Enter some integers separated by blanks!"
+ numberline <- getLine
+ print $ solution $ map read $ words numberline
+
diff --git a/challenge-290/ulrich-rieke/haskell/ch-2.hs b/challenge-290/ulrich-rieke/haskell/ch-2.hs
new file mode 100755
index 0000000000..4bf235c943
--- /dev/null
+++ b/challenge-290/ulrich-rieke/haskell/ch-2.hs
@@ -0,0 +1,31 @@
+module Challenge290_2
+ where
+import Data.Char ( isDigit , digitToInt , isSpace )
+import Data.List ( tail )
+
+digitSum :: Int -> Int
+digitSum = sum . map digitToInt . show
+
+findSums :: String -> Int
+findSums term = sum $ map myFunction $ zip [1,2..] (filter isDigit term )
+ where
+ myFunction :: (Int , Char ) -> Int
+ myFunction ( i , c )
+ |even i = digitToInt c
+ |otherwise = if mySum < 10 then mySum else digitSum mySum
+ where
+ mySum = 2 * ( digitToInt c )
+
+luhnCheck :: String -> Bool
+luhnCheck numberterm =
+ let condensed = filter ( not . isSpace ) numberterm
+ reversed = reverse condensed
+ payload = digitToInt $ head reversed
+ totalsum = findSums $ tail reversed
+ in mod (totalsum + payload) 10 == 0
+
+main :: IO ( )
+main = do
+ putStrLn "Enter a string consisting of numbers only!"
+ number <- getLine
+ print $ luhnCheck number
diff --git a/challenge-290/ulrich-rieke/perl/ch-1.pl b/challenge-290/ulrich-rieke/perl/ch-1.pl
new file mode 100755
index 0000000000..9cbd50d2eb
--- /dev/null
+++ b/challenge-290/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+say "Enter some integers, separated by blanks!" ;
+my $line = <STDIN> ;
+chomp $line ;
+my @numbers = split( /\s+/ , $line ) ;
+my $len = scalar( @numbers ) ;
+my $result = "false" ;
+for my $outer( 0..$len - 2 ) {
+ if ( $numbers[$outer] > 1 ) {
+ for my $inner( $outer + 1 .. $len - 1 ) {
+ if ( $numbers[$outer] == 2 * $numbers[$inner] ) {
+ $result = "true" ;
+ last ;
+ }
+ }
+ }
+}
+say $result ;
diff --git a/challenge-290/ulrich-rieke/perl/ch-2.pl b/challenge-290/ulrich-rieke/perl/ch-2.pl
new file mode 100755
index 0000000000..e2956f93a2
--- /dev/null
+++ b/challenge-290/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,52 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use POSIX ;
+use List::Util qw ( sum ) ;
+
+sub digitsum {
+ my $number = shift ;
+ my $sum = 0 ;
+ while ($number != 0 ) {
+ $sum += $number % 10 ;
+ $number = floor( int( $number / 10 ) ) ;
+ }
+ return $sum ;
+}
+
+say "Enter a term consisting of digits only!" ;
+my $term = <STDIN> ;
+chomp $term ;
+$term =~ s/\s+//g ;
+my $reversed = join( '' , reverse split( // , $term) ) ;
+my $payload = substr( $reversed , 0 , 1 ) ;
+my @sums ;
+my $count = 1 ;
+for my $pos( 1..length $reversed - 1 ) {
+ if ( substr( $reversed , $pos , 1 ) =~ /[0-9]/ ) {
+ my $number = substr( $reversed , $pos , 1 ) ;
+ if ( $count % 2 == 1 ) {
+ my $possum = 2 * $number ;
+ if ( $possum < 10 ) {
+ push( @sums, $possum ) ;
+ }
+ else {
+ my $localsum = digitsum( $possum ) ;
+ push( @sums , $localsum ) ;
+ }
+ }
+ else {
+ push( @sums, $number ) ;
+ }
+ $count++ ;
+ }
+}
+my $allSum = sum( @sums ) ;
+if ( ($allSum + $payload) % 10 == 0 ) {
+ say "true" ;
+}
+else {
+ say "false" ;
+}
+
diff --git a/challenge-290/ulrich-rieke/raku/ch-1.raku b/challenge-290/ulrich-rieke/raku/ch-1.raku
new file mode 100755
index 0000000000..244dee251a
--- /dev/null
+++ b/challenge-290/ulrich-rieke/raku/ch-1.raku
@@ -0,0 +1,18 @@
+use v6 ;
+
+say "Enter some integers , separated by blanks!" ;
+my $numberline = $*IN.get ;
+my @numbers = $numberline.words.map( {.Int} ) ;
+my $len = @numbers.elems ;
+my $result = False ;
+for (0..$len - 2) -> $outer {
+ if ( @numbers[$outer] > 1 ) {
+ for ( $outer + 1 .. $len - 1 ) -> $inner {
+ if ( @numbers[$outer] == 2 * @numbers[$inner] ) {
+ $result = True ;
+ last ;
+ }
+ }
+ }
+}
+say $result ;
diff --git a/challenge-290/ulrich-rieke/raku/ch-2.raku b/challenge-290/ulrich-rieke/raku/ch-2.raku
new file mode 100755
index 0000000000..86f3751aef
--- /dev/null
+++ b/challenge-290/ulrich-rieke/raku/ch-2.raku
@@ -0,0 +1,40 @@
+use v6 ;
+
+say "Enter a term consisting of digits!" ;
+my $term = $*IN.get ;
+$term ~~ s:g/\s// ;
+my $reversed = $term.flip ;
+my $count = 1 ;#we start with 1 since we initiate payload with last charact.
+my $payload = $reversed.substr( 0 , 1 ).Int ;
+my @sums ;
+for (1..$reversed.chars - 1 ) -> $pos {
+ if ( $reversed.substr( $pos , 1 ) ~~ /<[0..9]>/ ) {
+ my $number = +$reversed.substr( $pos , 1 ) ;
+ if ( $count %% 2 ) {
+ @sums.push( $number ) ;
+ }
+ else {
+ my $sum = 2 * $number ;
+ if ( $sum > 9 ) {
+ @sums.push( digitsum( $sum ) ) ;
+ }
+ else {
+ @sums.push( $sum ) ;
+ }
+ }
+ $count++ ;
+ }
+}
+my $totalSum = [+] @sums ;
+say ($totalSum + $payload) %% 10 ;
+
+sub digitsum( $number is copy ) {
+ my $sum = 0 ;
+ while ( $number != 0 ) {
+ $sum += $number mod 10 ;
+ $number div= 10 ;
+ }
+ return $sum ;
+}
+
+
diff --git a/challenge-290/ulrich-rieke/rust/ch-1.rs b/challenge-290/ulrich-rieke/rust/ch-1.rs
new file mode 100755
index 0000000000..df48fc3338
--- /dev/null
+++ b/challenge-290/ulrich-rieke/rust/ch-1.rs
@@ -0,0 +1,23 @@
+use std::io ;
+
+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( ) ;
+ let mut result : bool = false ;
+ let len = numbers.len( ) ;
+ for n in 0..len - 1 {
+ if numbers[n] > 1 {
+ for i in n + 1 ..len {
+ if numbers[n] == 2 * numbers[i] {
+ result = true ;
+ break ;
+ }
+ }
+ }
+ }
+ println!("{}" , result ) ;
+}
diff --git a/challenge-290/ulrich-rieke/rust/ch-2.rs b/challenge-290/ulrich-rieke/rust/ch-2.rs
new file mode 100755
index 0000000000..b8288a72c1
--- /dev/null
+++ b/challenge-290/ulrich-rieke/rust/ch-2.rs
@@ -0,0 +1,50 @@
+use std::io ;
+
+fn digit_sum( mut number : u32 ) -> u32 {
+ let mut sum : u32 = 0 ;
+ while number != 0 {
+ sum += number % 10 ;
+ number /= 10 ;
+ }
+ sum
+}
+
+fn main() {
+ println!("Enter a string consisting of digits!");
+ let mut inline : String = String::new( ) ;
+ io::stdin( ).read_line( &mut inline ).unwrap( ) ;
+ let entered_line : &str = inline.as_str( ).trim( ) ;
+ let mut count : u16 = 0 ;
+ let mut all_sums : Vec<u32> = Vec::new( ) ;
+ let mut payload : u32 = 0 ;
+ let mut iter = entered_line.chars( ).rev( ) ;
+ while let Some( c ) = iter.next( ) {
+ if c.is_ascii_digit( ) {
+ let num : u32 = match c.to_digit( 10 ) {
+ Some( n ) => n ,
+ None => 0
+ } ;
+ if count == 0 {
+ payload = num ;
+ }
+ else {
+ if count % 2 == 1 {
+ let product : u32 = 2 * num ;
+ if product < 10 {
+ all_sums.push( product ) ;
+ }
+ else {
+ let the_sum : u32 = digit_sum( product ) ;
+ all_sums.push( the_sum ) ;
+ }
+ }
+ else {
+ all_sums.push( num ) ;
+ }
+ }
+ count += 1 ;
+ }
+ }
+ let total_sum : u32 = all_sums.into_iter( ).sum( ) ;
+ println!("{}" , (total_sum + payload) % 10 == 0 ) ;
+}
diff --git a/stats/pwc-challenge-289.json b/stats/pwc-challenge-289.json
new file mode 100644
index 0000000000..8e07ca6c57
--- /dev/null
+++ b/stats/pwc-challenge-289.json
@@ -0,0 +1,733 @@
+{
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ },
+ "borderWidth" : 0
+ }
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "title" : {
+ "text" : "The Weekly Challenge - 289"
+ },
+ "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/>"
+ },
+ "legend" : {
+ "enabled" : 0
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "series" : [
+ {
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "name" : "Adam Russell",
+ "y" : 4,
+ "drilldown" : "Adam Russell"
+ },
+ {
+ "drilldown" : "Ali Moradi",
+ "y" : 3,
+ "name" : "Ali Moradi"
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Andre Ploger",
+ "name" : "Andre Ploger"
+ },
+ {
+ "drilldown" : "Arne Sommer",
+ "y" : 3,
+ "name" : "Arne Sommer"
+ },
+ {
+ "name" : "Asher Harvey-Smith",
+ "y" : 2,
+ "drilldown" : "Asher Harvey-Smith"
+ },
+ {
+ "name" : "Athanasius",
+ "y" : 4,
+ "drilldown" : "Athanasius"
+ },
+ {
+ "name" : "BarrOff",
+ "drilldown" : "BarrOff",
+ "y" : 2
+ },
+ {
+ "name" : "Bob Lied",
+ "y" : 2,
+ "drilldown" : "Bob Lied"
+ },
+ {
+ "drilldown" : "Cheok-Yin Fung",
+ "y" : 1,
+ "name" : "Cheok-Yin Fung"
+ },
+ {
+ "name" : "Dave Jacoby",
+ "drilldown" : "Dave Jacoby",
+ "y" : 3
+ },
+ {
+ "name" : "David Ferrone",
+ "y" : 2,
+ "drilldown" : "David Ferrone"
+ },
+ {
+ "name" : "E. Choroba",
+ "drilldown" : "E. Choroba",
+ "y" : 2
+ },
+ {
+ "name" : "Jaldhar H. Vyas",
+ "y" : 5,
+ "drilldown" : "Jaldhar H. Vyas"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Jan Krnavek",
+ "name" : "Jan Krnavek"
+ },
+ {
+ "drilldown" : "Jorg Sommrey",
+ "y" : 3,
+ "name" : "Jorg Sommrey"
+ },
+ {
+ "drilldown" : "Kjetil Skotheim",
+ "y" : 2,
+ "name" : "Kjetil Skotheim"
+ },
+ {
+ "name" : "Laurent Rosenfeld",
+ "drilldown" : "Laurent Rosenfeld",
+ "y" : 6
+ },
+ {
+ "name" : "Lubos Kolouch",
+ "drilldown" : "Lubos Kolouch",
+ "y" : 2
+ },
+ {
+ "name" : "Luca Ferrari",
+ "y" : 12,
+ "drilldown" : "Luca Ferrari"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Mark Anderson",
+ "name" : "Mark Anderson"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Matthew Neleigh",
+ "name" : "Matthew Neleigh"
+ },
+ {
+ "name" : "Matthias Muth",
+ "drilldown" : "Matthias Muth",
+ "y" : 3
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Niels van Dijke",
+ "name" : "Niels van Dijke"
+ },
+ {
+ "name" : "Packy Anderson",
+ "y" : 5,
+ "drilldown" : "Packy Anderson"
+ },
+ {
+ "name" : "Paulo Custodio",
+ "y" : 2,
+ "drilldown" : "Paulo Custodio"
+ },
+ {
+ "drilldown" : "Peter Campbell Smith",
+ "y" : 3,
+ "name" : "Peter Campbell Smith"
+ },
+ {
+ "name" : "Peter Meszaros",
+ "y" : 2,
+ "drilldown" : "Peter Meszaros"
+ },
+ {
+ "name" : "Reinier Maliepaard",
+ "y" : 2,
+ "drilldown" : "Reinier Maliepaard"
+ },
+ {
+ "name" : "Robbie Hatley",
+ "drilldown" : "Robbie Hatley",
+ "y" : 2
+ },
+ {
+ "name" : "Roger Bell_West",
+ "drilldown" : "Roger Bell_West",
+ "y" : 5
+ },
+ {
+ "name" : "Ryan Thompson",
+ "drilldown" : "Ryan Thompson",
+ "y" : 3
+ },
+ {
+ "name" : "Simon Green",
+ "drilldown" : "Simon Green",
+ "y" : 2
+ },
+ {
+ "y" : 4,
+ "drilldown" : "Thomas Kohler",
+ "name" : "Thomas Kohler"
+ },
+ {
+ "drilldown" : "Tim King",
+ "y" : 3,
+ "name" : "Tim King"
+ },
+ {
+ "y" : 3,
+ "drilldown" : "Torgny Lyon",
+ "name" : "Torgny Lyon"
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "y" : 4,
+ "drilldown" : "Ulrich Rieke"
+ },
+ {
+ "y" : 2,
+ "drilldown" : "Vinod Kumar K",
+ "name" : "Vinod Kumar K"
+ },
+ {
+ "drilldown" : "W. Luis Mochan",
+ "y" : 3,
+ "name" : "W. Luis Mochan"
+ },
+ {
+ "drilldown" : "Wanderdoc",
+ "y" : 2,
+ "name" : "Wanderdoc"
+ }
+ ],
+ "name" : "The Weekly Challenge - 289"
+ }
+ ],
+ "subtitle" : {
+ "text" : "[Champions: 39] Last updated at 2024-10-07 22:28:04 GMT"
+ },
+ "drilldown" : {
+ "series" : [
+ {
+ "id" : "Adam Russell",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 2
+ ]
+ ],
+ "name" : "Adam Russell"
+ },
+ {
+ "name" : "Ali Moradi",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ],
+ "id" : "Ali Moradi"
+ },
+ {
+ "id" : "Andre Ploger",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ],
+ "name" : "Andre Ploger"
+ },
+ {
+ "id" : "Arne Sommer",
+ "name" : "Arne Sommer",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
+ },
+ {
+ "id" : "Asher Harvey-Smith",
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "name" : "Asher Harvey-Smith"
+ },
+ {
+ "name" : "Athanasius",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "id" : "Athanasius"
+ },
+ {
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "name" : "BarrOff",
+ "id" : "BarrOff"
+ },
+ {
+ "id" : "Bob Lied",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "name" : "Bob Lied"
+ },
+ {
+ "id" : "Cheok-Yin Fung",
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ],
+ "name" : "Cheok-Yin Fung"
+ },
+ {
+ "id" : "Dave Jacoby",
+ "name" : "Dave Jacoby",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]
+ ]
+ },
+ {
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "name" : "David Ferrone",
+ "id" : "David Ferrone"
+ },
+ {
+ "id" : "E. Choroba",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "name" : "E. Choroba"
+ },
+ {
+ "id" : "Jaldhar H. Vyas",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ],
+ [
+ "Raku",
+ 2
+ ],
+ [
+ "Blog",
+ 1
+ ]