From b5525a20e03db4d3e70604ea8d853652ccae447f Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Tue, 23 Jan 2024 12:24:56 +0000 Subject: - Added solutions by E. Choroba. - Added solutions by Dave Jacoby. - Added solutions by Robbie Hatley. - Added solutions by Packy Anderson. - Added solutions by Mariano Spadaccini. - Added solutions by Roger Bell_West. - Added solutions by Ulrich Rieke. --- challenge-253/ulrich-rieke/cpp/ch-1.cpp | 41 + challenge-253/ulrich-rieke/cpp/ch-2.cpp | 50 + challenge-253/ulrich-rieke/haskell/ch-1.hs | 15 + challenge-253/ulrich-rieke/haskell/ch-2.hs | 38 + challenge-253/ulrich-rieke/perl/ch-1.pl | 25 + challenge-253/ulrich-rieke/perl/ch-2.pl | 32 + challenge-253/ulrich-rieke/raku/ch-1.raku | 21 + challenge-253/ulrich-rieke/rust/ch-1.rs | 25 + challenge-253/ulrich-rieke/rust/ch-2.rs | 49 + stats/pwc-current.json | 292 +- stats/pwc-language-breakdown-summary.json | 64 +- stats/pwc-language-breakdown.json | 9916 ++++++++++++++-------------- stats/pwc-leaders.json | 454 +- stats/pwc-summary-1-30.json | 100 +- stats/pwc-summary-121-150.json | 102 +- stats/pwc-summary-151-180.json | 120 +- stats/pwc-summary-181-210.json | 114 +- stats/pwc-summary-211-240.json | 36 +- stats/pwc-summary-241-270.json | 46 +- stats/pwc-summary-271-300.json | 52 +- stats/pwc-summary-301-330.json | 68 +- stats/pwc-summary-31-60.json | 100 +- stats/pwc-summary-61-90.json | 52 +- stats/pwc-summary-91-120.json | 48 +- stats/pwc-summary.json | 1896 +++--- 25 files changed, 7083 insertions(+), 6673 deletions(-) create mode 100755 challenge-253/ulrich-rieke/cpp/ch-1.cpp create mode 100755 challenge-253/ulrich-rieke/cpp/ch-2.cpp create mode 100755 challenge-253/ulrich-rieke/haskell/ch-1.hs create mode 100755 challenge-253/ulrich-rieke/haskell/ch-2.hs create mode 100755 challenge-253/ulrich-rieke/perl/ch-1.pl create mode 100755 challenge-253/ulrich-rieke/perl/ch-2.pl create mode 100755 challenge-253/ulrich-rieke/raku/ch-1.raku create mode 100755 challenge-253/ulrich-rieke/rust/ch-1.rs create mode 100755 challenge-253/ulrich-rieke/rust/ch-2.rs diff --git a/challenge-253/ulrich-rieke/cpp/ch-1.cpp b/challenge-253/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..eda7831788 --- /dev/null +++ b/challenge-253/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +#include +#include + +std::vector split( const std::string & startline , + const std::string & sep ) { + std::vector 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 strings, separated by blanks!\n" ; + std::string line ; + std::getline( std::cin , line ) ; + std::vector strings { split( line, " " ) } ; + std::cout << "Enter a separator!\n" ; + std::string separator ; + std::getline( std::cin, separator ) ; + std::vector result ; + for ( auto & s : strings ) { + std::vector parts { split( s , separator ) } ; + for ( auto & part : parts ) { + if ( part.length( ) > 0 ) + result.push_back( part ) ; + } + } + std::cout << "( " ; + std::copy( result.begin( ) , result.end( ) , + std::ostream_iterator(std::cout , " " ) ) ; + std::cout << ")\n" ; + return 0 ; +} diff --git a/challenge-253/ulrich-rieke/cpp/ch-2.cpp b/challenge-253/ulrich-rieke/cpp/ch-2.cpp new file mode 100755 index 0000000000..145c231367 --- /dev/null +++ b/challenge-253/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +bool mySorter( const std::pair> & , + const std::pair> & ) ; + + +int main( ) { + std::cout << "Enter some lines of 1 and 0, beginning with 1!\n" ; + std::cout << "Enter a negative number to end line entry!\n" ; + std::cout << "How many lines do you want to enter?\n" ; + int lines ; + std::cin >> lines ; + std::vector>> matrix ; + int count = 0 ; + while ( count < lines ) { + std::vector numbers ; + int nextnum ; + std::cin >> nextnum ; + while ( nextnum > -1 ) { + numbers.push_back( nextnum ) ; + std::cin >> nextnum ; + } + matrix.push_back( std::make_pair( count , numbers ) ) ; + count++ ; + } + std::sort( matrix.begin( ) , matrix.end( ) , mySorter ) ; + std::cout << "(" ; + for ( const auto & p : matrix ) { + std::cout << p.first << " " ; + } + std::cout << ")\n" ; + return 0 ; +} + +bool mySorter( const std::pair> & someFirst , + const std::pair> & someSecond ) { + int ones_a = std::count( someFirst.second.begin( ) , + someFirst.second.end( ) , 1 ) ; + int ones_b = std::count( someSecond.second.begin( ) , + someSecond.second.end( ) , 1 ) ; + if ( ones_a != ones_b ) { + return ones_a < ones_b ; + } + else { + return someFirst.first < someSecond.first ; + } +} diff --git a/challenge-253/ulrich-rieke/haskell/ch-1.hs b/challenge-253/ulrich-rieke/haskell/ch-1.hs new file mode 100755 index 0000000000..742b20896e --- /dev/null +++ b/challenge-253/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,15 @@ +module Challenge253 + where +import Data.List.Split( splitOn ) + +solution :: String -> String -> [String] +solution line separator = filter ( not . null ) $ concat $ map + (\w -> splitOn separator w ) $ words line + +main :: IO ( ) +main = do + putStrLn "Enter some strings, separated by blanks!" ; + strings <- getLine + putStrLn "Enter a separator!" + separator <- getLine + print $ solution strings separator diff --git a/challenge-253/ulrich-rieke/haskell/ch-2.hs b/challenge-253/ulrich-rieke/haskell/ch-2.hs new file mode 100755 index 0000000000..db22b6f60e --- /dev/null +++ b/challenge-253/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,38 @@ +module Challenge253_2 + where +import Data.List ( sortBy ) + +count :: Eq a => a -> [a] -> Int +count _ [] = 0 +count d (x:xs) + |d == x = 1 + count d xs + |otherwise = count d xs + +solution :: [[Int]] -> [Int] +solution list = map fst $ sortBy mySorter $ zip [0..] list + where + mySorter :: (Int ,[Int]) -> (Int, [Int]) -> Ordering + mySorter firstList secondList = if firstOnes /= secondOnes then + compare firstOnes secondOnes else compare ( fst firstList ) + ( fst secondList ) + where + firstOnes = count 1 ( snd firstList ) + secondOnes = count 1 ( snd secondList ) + +getMultipleLines :: Int -> IO [String] +getMultipleLines n + |n <= 0 = return [] + |otherwise = do + x <- getLine + xs <- getMultipleLines ( n - 1 ) + let ret = (x:xs) + return ret + +main :: IO ( ) +main = do + putStrLn "Enter a matrix of 1 and 0 only, beginning with 1's in line!" + putStrLn "How many lines do you want to enter ?" + myLines <- getLine + allNumbers <- getMultipleLines ( read myLines ) + let matrix = map ( map read . words ) allNumbers + print $ solution matrix diff --git a/challenge-253/ulrich-rieke/perl/ch-1.pl b/challenge-253/ulrich-rieke/perl/ch-1.pl new file mode 100755 index 0000000000..294e5edae9 --- /dev/null +++ b/challenge-253/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +say "Enter some strings, separated by blanks!" ; +my $line = ; +chomp $line ; +my @strings = split( /\s/ , $line ) ; +say "Enter a separator!" ; +my $sep = ; +chomp $sep ; +my @result ; +for my $str( @strings ) { + my $pos = index( $str , $sep ) ; + while ( $pos != -1 ) { + substr( $str , $pos , 1 ) = " " ; + $pos = index( $str , $sep , $pos + 1) ; + } + my @parts = split( /\s/ , $str ) ; + for my $p ( @parts ) { + push @result, $p ; + } +} +say ( "(" . join( ',' , grep {length $_ > 0 } @result ) . ")" ) ; diff --git a/challenge-253/ulrich-rieke/perl/ch-2.pl b/challenge-253/ulrich-rieke/perl/ch-2.pl new file mode 100755 index 0000000000..0fa620e08c --- /dev/null +++ b/challenge-253/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +sub count { + my $numbers = shift ; + return scalar( grep { $_ == 1 } @$numbers ) ; +} + +sub mySorter { + count( $a->[1] ) <=> count( $b->[1] ) || $a->[0] <=> $b->[0] ; +} + +say "Enter some lines of 1 and 0, starting with 1, to end!" ; +my $line = ; +chomp $line ; +my @matrix ; +my $current = 0 ; +while ( $line ) { + my @numbers = split( /\s/ , $line ) ; + push( @matrix, [ $current , \@numbers ] ) ; + $current++ ; + $line = ; + chomp $line ; +} +my @sorted = sort mySorter @matrix ; +print "( " ; +for my $p ( @sorted ) { + print "$p->[0] " ; +} +say ")" ; diff --git a/challenge-253/ulrich-rieke/raku/ch-1.raku b/challenge-253/ulrich-rieke/raku/ch-1.raku new file mode 100755 index 0000000000..0ac00ff74f --- /dev/null +++ b/challenge-253/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,21 @@ +use v6 ; + +say "Enter some strings, separated by whitespace!" ; +my $line = $*IN.get ; +my @strings = $line.words ; +say "Enter a separator!" ; +my $sep = $*IN.get ; +my @result ; +for @strings <-> $str { + if ( $str ~~ /$sep/ ) { + $str ~~ s:g/$sep/ / ; + my @parts = $str.words ; + for @parts -> $p { + @result.push( $p ) ; + } + } + else { + @result.push( $str ) ; + } +} +say ( "(" ~ @result.join( ' ' ) ~ ")" ) ; diff --git a/challenge-253/ulrich-rieke/rust/ch-1.rs b/challenge-253/ulrich-rieke/rust/ch-1.rs new file mode 100755 index 0000000000..28f3d4046b --- /dev/null +++ b/challenge-253/ulrich-rieke/rust/ch-1.rs @@ -0,0 +1,25 @@ +use std::io ; + +fn main() { + println!("Enter some strings, separated by whitespace!"); + 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( ) ; + println!("Enter a separator!") ; + let mut sep_line : String = String::new( ) ; + io::stdin( ).read_line( &mut sep_line ).unwrap( ) ; + let separator : &str = &*sep_line ; + let changed = separator.trim( ) ; + let mut result : Vec<&str> = Vec::new( ) ; + for s in &strings { + let v : Vec<&str> = s.split( changed ).collect( ) ; + for substr in &v { + if substr.len( ) > 0 { + result.push( substr ) ; + } + } + } + println!("{:?}" , result ) ; +} diff --git a/challenge-253/ulrich-rieke/rust/ch-2.rs b/challenge-253/ulrich-rieke/rust/ch-2.rs new file mode 100755 index 0000000000..856a224a00 --- /dev/null +++ b/challenge-253/ulrich-rieke/rust/ch-2.rs @@ -0,0 +1,49 @@ +use std::io ; +use std::io::BufRead ; + +fn main() -> io::Result<()> { + println!("Enter n rows of m binary digits, 1 before 0!"); + println!("Enter to end!") ; + let mut lines = io::stdin( ).lock( ).lines( ) ; + let mut all_input : String = String::new( ) ; + 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 rows : Vec<&str> = all_input.split( "\n").collect( ) ; + let mut matrix : Vec> = Vec::new( ) ; + for r in &rows { + if r.len( ) > 0 { + let row_nums : Vec = r.split_whitespace( ).map( | s | + s.trim( ).parse::( ).unwrap( ) ).collect( ) ; + matrix.push( row_nums ) ; + } + } + let mut sorted_rows : Vec<(usize , &Vec)> = Vec::new( ) ; + let mut iter = matrix.iter( ).enumerate( ) ; + while let Some( pair ) = iter.next( ) { + sorted_rows.push( pair ) ; + } + let for_sorting = sorted_rows.as_mut_slice( ) ; + for_sorting.sort_by( | a , b| { + let ones_a = a.1.iter( ).filter( | d | **d == 1 ).count( ) ; + let ones_b = b.1.iter( ).filter( | d | **d == 1 ).count( ) ; + if ones_a != ones_b { + return ones_a.cmp( &ones_b ) ; + } + else { + return a.0.cmp( &b.0 ) ; + } + }) ; + for pair in for_sorting { + print!("{} " , pair.0 ) ; + } + println!("") ; + Ok(()) +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 95e534088f..dbebb5ee27 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,86 +1,10 @@ { - "xAxis" : { - "type" : "category" - }, "title" : { "text" : "The Weekly Challenge - 253" }, - "subtitle" : { - "text" : "[Champions: 8] Last updated at 2024-01-22 21:06:53 GMT" - }, "legend" : { "enabled" : 0 }, - "chart" : { - "type" : "column" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "tooltip" : { - "followPointer" : 1, - "pointFormat" : "{point.name}: {point.y:f}
", - "headerFormat" : "{series.name}
" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "series" : [ - { - "colorByPoint" : 1, - "data" : [ - { - "y" : 2, - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby" - }, - { - "y" : 2, - "name" : "David Ferrone", - "drilldown" : "David Ferrone" - }, - { - "y" : 3, - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" - }, - { - "y" : 11, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "y" : 2, - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" - }, - { - "y" : 2, - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke" - }, - { - "y" : 4, - "name" : "Thomas Kohler", - "drilldown" : "Thomas Kohler" - }, - { - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan", - "y" : 3 - } - ], - "name" : "The Weekly Challenge - 253" - } - ], "drilldown" : { "series" : [ { @@ -88,10 +12,24 @@ [ "Perl", 2 + ], + [ + "Blog", + 1 ] ], - "id" : "Dave Jacoby", - "name" : "Dave Jacoby" + "name" : "Dave Jacoby", + "id" : "Dave Jacoby" + }, + { + "id" : "David Ferrone", + "name" : "David Ferrone", + "data" : [ + [ + "Perl", + 2 + ] + ] }, { "data" : [ @@ -100,8 +38,8 @@ 2 ] ], - "name" : "David Ferrone", - "id" : "David Ferrone" + "id" : "E. Choroba", + "name" : "E. Choroba" }, { "data" : [ @@ -118,8 +56,8 @@ 1 ] ], - "id" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" + "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld" }, { "data" : [ @@ -132,19 +70,29 @@ 9 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "name" : "Luca Ferrari", + "id" : "Luca Ferrari" }, { - "name" : "Mark Anderson", - "id" : "Mark Anderson", + "name" : "Mariano Spadaccini", + "id" : "Mariano Spadaccini", "data" : [ [ - "Raku", + "Perl", 2 ] ] }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Mark Anderson", + "name" : "Mark Anderson" + }, { "data" : [ [ @@ -155,6 +103,52 @@ "id" : "Niels van Dijke", "name" : "Niels van Dijke" }, + { + "id" : "Packy Anderson", + "name" : "Packy Anderson", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "name" : "Robbie Hatley", + "id" : "Robbie Hatley" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Roger Bell_West", + "id" : "Roger Bell_West" + }, { "data" : [ [ @@ -169,6 +163,20 @@ "name" : "Thomas Kohler", "id" : "Thomas Kohler" }, + { + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 1 + ] + ] + }, { "data" : [ [ @@ -180,9 +188,115 @@ 1 ] ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" } ] + }, + "subtitle" : { + "text" : "[Champions: 14] Last updated at 2024-01-23 12:21:52 GMT" + }, + "xAxis" : { + "type" : "category" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "series" : [ + { + "name" : "The Weekly Challenge - 253", + "colorByPoint" : 1, + "data" : [ + { + "name" : "Dave Jacoby", + "y" : 3, + "drilldown" : "Dave Jacoby" + }, + { + "name" : "David Ferrone", + "y" : 2, + "drilldown" : "David Ferrone" + }, + { + "y" : 2, + "drilldown" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "drilldown" : "Laurent Rosenfeld", + "y" : 3, + "name" : "Laurent Rosenfeld" + }, + { + "name" : "Luca Ferrari", + "y" : 11, + "drilldown" : "Luca Ferrari" + }, + { + "name" : "Mariano Spadaccini", + "y" : 2, + "drilldown" : "Mariano Spadaccini" + }, + { + "y" : 2, + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "drilldown" : "Niels van Dijke", + "y" : 2, + "name" : "Niels van Dijke" + }, + { + "y" : 5, + "drilldown" : "Packy Anderson", + "name" : "Packy Anderson" + }, + { + "name" : "Robbie Hatley", + "y" : 3, + "drilldown" : "Robbie Hatley" + }, + { + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West", + "y" : 4 + }, + { + "drilldown" : "Thomas Kohler", + "y" : 4, + "name" : "Thomas Kohler" + }, + { + "y" : 3, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "y" : 3, + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + } + ] + } + ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "tooltip" : { + "headerFormat" : "{series.name}
", + "followPointer" : 1, + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 11f9a3f158..13b809fb32 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,4 +1,16 @@ { + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2024]" + }, + "legend" : { + "enabled" : "false" + }, + "tooltip" : { + "pointFormat" : "{point.y:.0f}" + }, + "chart" : { + "type" : "column" + }, "xAxis" : { "labels" : { "style" : { @@ -8,56 +20,44 @@ }, "type" : "category" }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2024]" - }, "subtitle" : { - "text" : "Last updated at 2024-01-22 21:06:53 GMT" - }, - "legend" : { - "enabled" : "false" - }, - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" + "text" : "Last updated at 2024-01-23 12:21:52 GMT" }, "yAxis" : { - "min" : 0, "title" : { "text" : null - } + }, + "min" : 0 }, "series" : [ { - "dataLabels" : { - "rotation" : -90, - "format" : "{point.y:.0f}", - "enabled" : "true", - "y" : 10, - "color" : "#FFFFFF", - "align" : "right", - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "name" : "Contributions", "data" : [ [ "Blog", - 4441 + 4444 ], [ "Perl", - 13031 + 13043 ], [ "Raku", - 7519 + 7524 ] - ] + ], + "dataLabels" : { + "enabled" : "true", + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "align" : "right", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", + "y" : 10, + "rotation" : -90 + }, + "name" : "Contributions" } ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 8f7129aa61..a59510f702 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,4599 +1,65 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-01-22 21:06:53 GMT" + "xAxis" : { + "type" : "category" }, - "legend" : { - "enabled" : "false" + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2024-01-23 12:21:52 GMT" }, - "title" : { - "text" : "The Weekly Challenge Language" + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } }, - "xAxis" : { - "type" : "category" - }, - "drilldown" : { - "series" : [ - { - "data" : [ - [ - "Perl", - 105 - ], - [ - "Raku", - 47 - ], - [ - "Blog", - 12 - ] - ], - "id" : "001", - "name" : "001" - }, - { - "name" : "002", - "id" : "002", - "data" : [ - [ - "Perl", - 83 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 48 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 9 - ] - ], - "id" : "003", - "name" : "003" - }, - { - "data" : [ - [ - "Perl", - 60 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 10 - ] - ], - "name" : "004", - "id" : "004" - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 12 - ] - ], - "id" : "005", - "name" : "005" - }, - { - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 18 - ], - [ - "Blog", - 7 - ] - ], - "name" : "006", - "id" : "006" - }, - { - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 10 - ] - ], - "id" : "007", - "name" : "007" - }, - { - "data" : [ - [ - "Perl", - 48 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 12 - ] - ], - "id" : "008", - "name" : "008" - }, - { - "id" : "009", - "name" : "009", - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 11 - ] - ], - "name" : "010", - "id" : "010" - }, - { - "name" : "011", - "id" : "011", - "data" : [ - [ - "Perl", - 51 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 51 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ], - "id" : "012", - "name" : "012" - }, - { - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 13 - ] - ], - "id" : "013", - "name" : "013" - }, - { - "name" : "014", - "id" : "014", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 58 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 15 - ] - ], - "name" : "015", - "id" : "015" - }, - { - "name" : "016", - "id" : "016", - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 12 - ] - ], - "name" : "017", - "id" : "017" - }, - { - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ], - "name" : "018", - "id" : "018" - }, - { - "id" : "019", - "name" : "019", - "data" : [ - [ - "Perl", - 58 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 13 - ] - ], - "name" : "020", - "id" : "020" - }, - { - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 10 - ] - ], - "id" : "021", - "name" : "021" - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 10 - ] - ], - "id" : "022", - "name" : "022" - }, - { - "name" : "023", - "id" : "023", - "data" : [ - [ - "Perl", - 57 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "id" : "024", - "name" : "024", - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "name" : "025", - "id" : "025", - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "id" : "026", - "name" : "026", - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 9 - ] - ], - "name" : "027", - "id" : "027" - }, - { - "name" : "028", - "id" : "028", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "id" : "029", - "name" : "029", - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "id" : "030", - "name" : "030", - "data" : [ - [ - "Perl", - 78 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "name" : "031", - "id" : "031", - "data" : [ - [ - "Perl", - 54 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "id" : "032", - "name" : "032", - "data" : [ - [ - "Perl", - 61 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 66 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 10 - ] - ], - "id" : "033", - "name" : "033" - }, - { - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 11 - ] - ], - "name" : "034", - "id" : "034" - }, - { - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 9 - ] - ], - "id" : "035", - "name" : "035" - }, - { - "name" : "036", - "id" : "036", - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 9 - ] - ], - "id" : "037", - "name" : "037" - }, - { - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 12 - ] - ], - "name" : "038", - "id" : "038" - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 12 - ] - ], - "id" : "039", - "name" : "039" - }, - { - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 10 - ] - ], - "id" : "040", - "name" : "040" - }, - { - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 9 - ] - ], - "id" : "041", - "name" : "041" - }, - { - "name" : "042", - "id" : "042", - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "name" : "043", - "id" : "043", - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "id" : "044", - "name" : "044", - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "id" : "045", - "name" : "045", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 10 - ] - ], - "name" : "046", - "id" : "046" - }, - { - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ], - "name" : "047", - "id" : "047" - }, - { - "data" : [ - [ - "Perl", - 63 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 12 - ] - ], - "name" : "048", - "id" : "048" - }, - { - "name" : "049", - "id" : "049", - "data" : [ - [ - "Perl", - 54 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "name" : "050", - "id" : "050", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 11 - ] - ], - "id" : "051", - "name" : "051" - }, - { - "name" : "052", - "id" : "052", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "id" : "053", - "name" : "053", - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 41 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "id" : "054", - "name" : "054", - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 40 - ], - [ - "Blog", - 18 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 14 - ] - ], - "name" : "055", - "id" : "055" - }, - { - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 17 - ] - ], - "id" : "056", - "name" : "056" - }, - { - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 15 - ] - ], - "name" : "057", - "id" : "057" - }, - { - "id" : "058", - "name" : "058", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 16 - ] - ], - "name" : "059", - "id" : "059" - }, - { - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 16 - ] - ], - "name" : "060", - "id" : "060" - }, - { - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 14 - ] - ], - "id" : "061", - "name" : "061" - }, - { - "id" : "062", - "name" : "062", - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 13 - ] - ], - "name" : "063", - "id" : "063" - }, - { - "id" : "064", - "name" : "064", - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 15 - ] - ], - "id" : "065", - "name" : "065" - }, - { - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ], - "name" : "066", - "id" : "066" - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 18 - ] - ], - "id" : "067", - "name" : "067" - }, - { - "name" : "068", - "id" : "068", - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "id" : "069", - "name" : "069", - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 17 - ] - ], - "name" : "070", - "id" : "070" - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 15 - ] - ], - "id" : "071", - "name" : "071" - }, - { - "id" : "072", - "name" : "072", - "data" : [ - [ - "Perl", - 55 - ], - [ - "Raku", - 42 - ], - [ - "Blog", - 19 - ] - ] - }, - { - "id" : "073", - "name" : "073", - "data" : [ - [ - "Perl", - 55 - ], - [ - "Raku", - 40 - ], - [ - "Blog", - 17 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 58 - ], - [ - "Raku", - 39 - ], - [ - "Blog", - 20 - ] - ], - "name" : "074", - "id" : "074" - }, - { - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 20 - ] - ], - "name" : "075", - "id" : "075" - }, - { - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 16 - ] - ], - "id" : "076", - "name" : "076" - }, - { - "id" : "077", - "name" : "077", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "name" : "078", - "id" : "078", - "data" : [ - [ - "Perl", - 68 - ], - [ - "Raku", - 41 - ], - [ - "Blog", - 18 - ] - ] - }, - { - "name" : "079", - "id" : "079", - "data" : [ - [ - "Perl", - 68 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 17 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 75 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 16 - ] - ], - "name" : "080", - "id" : "080" - }, - { - "data" : [ - [ - "Perl", - 65 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 15 - ] - ], - "name" : "081", - "id" : "081" - }, - { - "data" : [ - [ - "Perl", - 62 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 17 - ] - ], - "name" : "082", - "id" : "082" - }, - { - "id" : "083", - "name" : "083", - "data" : [ - [ - "Perl", - 73 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "name" : "084", - "id" : "084", - "data" : [ - [ - "Perl", - 71 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 63 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 18 - ] - ], - "id" : "085", - "name" : "085" - }, - { - "data" : [ - [ - "Perl", - 58 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 15 - ] - ], - "id" : "086", - "name" : "086" - }, - { - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ], - "name" : "087", - "id" : "087" - }, - { - "id" : "088", - "name" : "088", - "data" : [ - [ - "Perl", - 65 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 20 - ] - ] - }, - { - "name" : "089", - "id" : "089", - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 20 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 57 - ], - [ - "Raku", - 39 - ], - [ - "Blog", - 17 - ] - ], - "id" : "090", - "name" : "090" - }, - { - "name" : "091", - "id" : "091", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "name" : "092", - "id" : "092", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 16 - ] - ], - "id" : "093", - "name" : "093" - }, - { - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 17 - ] - ], - "id" : "094", - "name" : "094" - }, - { - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 19 - ] - ], - "name" : "095", - "id" : "095" - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 19 - ] - ], - "id" : "096", - "name" : "096" - }, - { - "data" : [ - [ - "Perl", - 63 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 19 - ] - ], - "id" : "097", - "name" : "097" - }, - { - "name" : "098", - "id" : "098", - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 17 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 14 - ] - ], - "id" : "099", - "name" : "099" - }, - { - "name" : "100", - "id" : "100", - "data" : [ - [ - "Perl", - 69 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 21 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 13 - ] - ], - "id" : "101", - "name" : "101" - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 15 - ] - ], - "name" : "102", - "id" : "102" - }, - { - "id" : "103", - "name" : "103", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 14 - ] - ], - "id" : "104", - "name" : "104" - }, - { - "id" : "105", - "name" : "105", - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 14 - ] - ] - }, - { -