From 3a6c5bb04db16be0d61eeac0d74488966d6ba2f4 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Tue, 14 Jun 2022 21:44:13 +0100 Subject: - Added solutions by Ulrich Rieke. --- challenge-169/ulrich-rieke/cpp/ch-1.cpp | 46 + challenge-169/ulrich-rieke/cpp/ch-2.cpp | 66 + challenge-169/ulrich-rieke/haskell/ch-1.hs | 26 + challenge-169/ulrich-rieke/haskell/ch-2.hs | 25 + challenge-169/ulrich-rieke/perl/ch-1.pl | 37 + challenge-169/ulrich-rieke/perl/ch-2.pl | 67 + challenge-169/ulrich-rieke/raku/ch-1.raku | 30 + challenge-169/ulrich-rieke/raku/ch-2.raku | 33 + stats/pwc-current.json | 155 +- stats/pwc-language-breakdown-summary.json | 34 +- stats/pwc-language-breakdown.json | 6664 ++++++++++++++-------------- stats/pwc-leaders.json | 390 +- stats/pwc-summary-1-30.json | 54 +- stats/pwc-summary-121-150.json | 92 +- stats/pwc-summary-151-180.json | 32 +- stats/pwc-summary-181-210.json | 98 +- stats/pwc-summary-211-240.json | 36 +- stats/pwc-summary-241-270.json | 42 +- stats/pwc-summary-31-60.json | 130 +- stats/pwc-summary-61-90.json | 44 +- stats/pwc-summary-91-120.json | 38 +- stats/pwc-summary.json | 44 +- 22 files changed, 4266 insertions(+), 3917 deletions(-) create mode 100644 challenge-169/ulrich-rieke/cpp/ch-1.cpp create mode 100644 challenge-169/ulrich-rieke/cpp/ch-2.cpp create mode 100644 challenge-169/ulrich-rieke/haskell/ch-1.hs create mode 100644 challenge-169/ulrich-rieke/haskell/ch-2.hs create mode 100644 challenge-169/ulrich-rieke/perl/ch-1.pl create mode 100644 challenge-169/ulrich-rieke/perl/ch-2.pl create mode 100644 challenge-169/ulrich-rieke/raku/ch-1.raku create mode 100644 challenge-169/ulrich-rieke/raku/ch-2.raku diff --git a/challenge-169/ulrich-rieke/cpp/ch-1.cpp b/challenge-169/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..2d4d8011f4 --- /dev/null +++ b/challenge-169/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,46 @@ +#include +#include +#include +#include + +std::vector primeDecompose( int n ) { + std::vector primeFactors ; + int current = 2 ; + while ( n != 1 ) { + if ( n % current == 0 ) { + primeFactors.push_back( current ) ; + n /= current ; + } + else { + current++ ; + } + } + return primeFactors ; +} + +bool isBrilliant( int n ) { + std::vector primeFactors( primeDecompose( n ) ) ; + if ( primeFactors.size( ) == 2 ) { + std::vector primeNumbers( 2 ) ; + std::transform( primeFactors.begin( ) , primeFactors.end( ) , + primeNumbers.begin( ) , []( int i ){ return std::to_string( i ) ;} ) ; + return primeNumbers.begin()->length( ) == primeNumbers.back().length( ) ; + } + else { + return false ; + } +} + +int main( ) { + std::vector brilliantNumbers ; + int current = 2 ; + while ( brilliantNumbers.size( ) != 20 ) { + if ( isBrilliant( current ) ) + brilliantNumbers.push_back( current ) ; + current++ ; + } + for ( int i : brilliantNumbers ) + std::cout << i << " " ; + std::cout << std::endl ; + return 0 ; +} diff --git a/challenge-169/ulrich-rieke/cpp/ch-2.cpp b/challenge-169/ulrich-rieke/cpp/ch-2.cpp new file mode 100644 index 0000000000..ffbcfcdd34 --- /dev/null +++ b/challenge-169/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,66 @@ +#include +#include +#include +#include +#include +#include + +std::vector primeDecompose( int n ) { + std::vector primeFactors ; + int current = 2 ; + while ( n != 1 ) { + if ( n % current == 0 ) { + primeFactors.push_back( current ) ; + n /= current ; + } + else { + current++ ; + } + } + return primeFactors ; +} + +int my_gcd( int a , int b ) { + std::vector firstFactors( primeDecompose( a ) ) ; + std::vector secondFactors( primeDecompose( b ) ) ; + std::vector common ; + std::set_intersection( firstFactors.begin( ) , firstFactors.end( ) , + secondFactors.begin( ) , secondFactors.end( ) , + std::inserter( common, common.begin( ) )) ; + return std::accumulate( common.begin( ) , common.end( ) , 1 , + std::multiplies( ) ) ; +} + +bool isAchilles( int n ) { + std::vector primeFactors( primeDecompose( n ) ) ; + std::map factorCount ; + for ( int i : primeFactors ) { + factorCount[ i ]++ ; + } + std::vector exponents ; + for ( auto it = factorCount.begin( ) ; it != factorCount.end( ) ; ++it ) { + exponents.push_back( it->second ) ; + } + if ( *std::min_element(exponents.begin( ) , exponents.end( ) ) >= 2 ) { + int start = *exponents.begin( ) ; + return (std::accumulate( exponents.begin( ) , exponents.end( ) , start , + []( int a , int b ){ return my_gcd( a , b ) ; } ) == 1 ) ; + } + else + return false ; +} + +int main( ) { + std::vector achillesNumbers ; + int current = 2 ; + while ( achillesNumbers.size( ) != 20 ) { + if ( isAchilles( current ) ) { + achillesNumbers.push_back( current ) ; + } + current++ ; + } + for ( int i : achillesNumbers ) + std::cout << i << " " ; + std::cout << std::endl ; + return 0 ; +} diff --git a/challenge-169/ulrich-rieke/haskell/ch-1.hs b/challenge-169/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..704ef0c9b1 --- /dev/null +++ b/challenge-169/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,26 @@ +module Challenge169 + where + +divisors :: Int -> [Int] +divisors n = [d | d <- [2 .. n] , mod n d == 0 ] + +primeDecompose :: Int -> [Int] +primeDecompose n = snd $ until ( (== 1) . fst ) step (n , [] ) +where + step :: ( Int , [Int] ) -> ( Int , [Int] ) + step ( d , list ) = ( div d h , list ++ [h] ) + where + h = head $ divisors d + +isBrilliant :: Int -> Bool +isBrilliant n = (( length primeFactors ) == 2) && (l1 == l2 ) +where + primeFactors :: [Int] + primeFactors = primeDecompose n + l1 :: Int + l1 = length $ show $ head primeFactors + l2 :: Int + l2 = length $ show $ last primeFactors + +solution :: [Int] +solution = take 20 $ filter isBrilliant [2 , 3 ..] diff --git a/challenge-169/ulrich-rieke/haskell/ch-2.hs b/challenge-169/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..f3d2184277 --- /dev/null +++ b/challenge-169/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,25 @@ +module Challenge169_2 + where +import Data.List ( group ) + +divisors :: Int -> [Int] +divisors n = [d | d <- [2 .. n] , mod n d == 0 ] + +primeDecompose :: Int -> [Int] +primeDecompose n = snd $ until ( (== 1) . fst ) step (n , [] ) +where + step :: ( Int , [Int] ) -> ( Int , [Int] ) + step ( d , list ) = ( div d h , list ++ [h] ) + where + h = head $ divisors d + +isAchilles :: Int -> Bool +isAchilles n = myCondition && ( (foldl1 gcd theLengths ) == 1 ) +where + theLengths :: [Int] + theLengths = map length $ group $ primeDecompose n + myCondition :: Bool + myCondition = if null theLengths then False else (minimum theLengths) >= 2 + +solution :: [Int] +solution = take 20 $ filter isAchilles [2 , 3 ..] diff --git a/challenge-169/ulrich-rieke/perl/ch-1.pl b/challenge-169/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..59be1f066b --- /dev/null +++ b/challenge-169/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +sub primeDecompose { + my $number = shift ; + my $current = 2 ; + my @primeFactors ; + while ( $number != 1 ) { + if ( $number % $current == 0 ) { + push @primeFactors, $current ; + $number /= $current ; + } + else { + $current++ ; + } + } + return @primeFactors ; +} + +sub isBrilliant { + my $number = shift ; + my @primeFactors = primeDecompose( $number ) ; + return ( (scalar( @primeFactors ) == 2 ) && ( length( $primeFactors[0] ) + == length( $primeFactors[1] ))) ; +} + +my @brilliantNumbers ; +my $current = 1 ; +while ( scalar( @brilliantNumbers ) != 20 ) { + if ( isBrilliant( $current ) ) { + push @brilliantNumbers , $current ; + } + $current++ ; +} +say join( ',' , @brilliantNumbers ) ; diff --git a/challenge-169/ulrich-rieke/perl/ch-2.pl b/challenge-169/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..d2f5c0af99 --- /dev/null +++ b/challenge-169/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,67 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( min max reduce ) ; + +sub primeDecompose { + my $number = shift ; + my $current = 2 ; + my @primeFactors ; + while ( $number != 1 ) { + if ( $number % $current == 0 ) { + push @primeFactors, $current ; + $number /= $current ; + } + else { + $current++ ; + } + } + return @primeFactors ; +} + +sub gcd { + my $first = shift ; + my $second = shift ; + my %firstDivisors ; + my %secondDivisors ; + for my $n ( 1 .. $first ) { + if ( $first % $n == 0 ) { + $firstDivisors{ $n }++ ; + } + } + for my $n ( 1 .. $second ) { + if ( $second % $n == 0 ) { + $secondDivisors{ $n }++ ; + } + } + my @common = grep { exists ($secondDivisors{$_}) } keys %firstDivisors ; + return max( @common ) ; +} + +sub isAchilles { + my $number = shift ; + my @primeFactors = primeDecompose( $number ) ; + my %achilles ; + for my $n ( @primeFactors ) { + $achilles{$n}++ ; + } + my @frequencies = values( %achilles ) ; + my $minFactor = min( @frequencies ) ; + if ( $minFactor < 2 ) { + return 0 ; + } + else { + return ( (reduce { gcd( $a , $b ) } @frequencies) == 1 ) ; + } +} + +my @achillesNumbers ; +my $current = 2 ; +while ( scalar( @achillesNumbers ) != 20 ) { + if ( isAchilles( $current ) ) { + push @achillesNumbers , $current ; + } + $current++ ; +} +say join( ',' , @achillesNumbers ) ; diff --git a/challenge-169/ulrich-rieke/raku/ch-1.raku b/challenge-169/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..ce2705bccc --- /dev/null +++ b/challenge-169/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,30 @@ +use v6 ; + +sub primeDecompose( Int $n is copy ) { + my @primeFactors ; + my $current = 2 ; + while ( $n != 1 ) { + while ( not ( $n %% $current ) ) { + $current++ ; + } + @primeFactors.push( $current ) ; + $n div= $current ; + } + return @primeFactors ; +} + +sub isBrilliant( Int $n is copy --> Bool ) { + my @primeFactors = primeDecompose( $n ) ; + return ( @primeFactors.elems == 2 ) && ( ~(@primeFactors[0]).chars == + ~(@primeFactors[1].chars )) ; +} + +my @brilliantNumbers ; +my $current = 2 ; +while ( @brilliantNumbers.elems != 20 ) { + if ( isBrilliant( $current ) ) { + @brilliantNumbers.push( $current ) ; + } + $current++ ; +} +say @brilliantNumbers.join( ',') ; diff --git a/challenge-169/ulrich-rieke/raku/ch-2.raku b/challenge-169/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..f04f39e218 --- /dev/null +++ b/challenge-169/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,33 @@ +use v6 ; + +sub primeDecompose( Int $n is copy ) { + my @primeFactors ; + my $current = 2 ; + while ( $n != 1 ) { + while ( not ( $n %% $current ) ) { + $current++ ; + } + @primeFactors.push( $current ) ; + $n div= $current ; + } + return @primeFactors ; +} + +sub isAchillesNumber( Int $n is copy --> Bool ) { + my @primeFactors = primeDecompose( $n ) ; + my %achilles ; + for @primeFactors -> $i { + %achilles{~$i}++ ; + } + return (%achilles.values.min >= 2) && (([gcd] %achilles.values) == 1 ) ; +} + +my @achillesNumbers ; +my $current = 2 ; +while (@achillesNumbers.elems != 20 ) { + if ( isAchillesNumber( $current ) ) { + @achillesNumbers.push( $current ) ; + } + $current++ ; +} +say @achillesNumbers.join( ', ' ) ; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index f59115fdb5..91e1c796f5 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,28 +1,7 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "[Champions: 9] Last updated at 2022-06-14 20:05:56 GMT" - }, - "title" : { - "text" : "The Weekly Challenge - 169" - }, - "legend" : { - "enabled" : 0 - }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { - "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -33,6 +12,7 @@ 6 ] ], + "id" : "Luca Ferrari", "name" : "Luca Ferrari" }, { @@ -46,7 +26,6 @@ "id" : "Mark Anderson" }, { - "id" : "Peter Campbell Smith", "name" : "Peter Campbell Smith", "data" : [ [ @@ -57,29 +36,32 @@ "Blog", 1 ] - ] + ], + "id" : "Peter Campbell Smith" }, { + "name" : "PokGoPun", + "id" : "PokGoPun", "data" : [ [ "Perl", 2 ] - ], - "name" : "PokGoPun", - "id" : "PokGoPun" + ] }, { - "id" : "Robert DiCicco", "data" : [ [ "Raku", 1 ] ], + "id" : "Robert DiCicco", "name" : "Robert DiCicco" }, { + "name" : "Roger Bell_West", + "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -89,12 +71,11 @@ "Raku", 2 ] - ], - "name" : "Roger Bell_West", - "id" : "Roger Bell_West" + ] }, { "name" : "Simon Green", + "id" : "Simon Green", "data" : [ [ "Perl", @@ -104,11 +85,24 @@ "Blog", 1 ] + ] + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] ], - "id" : "Simon Green" + "id" : "Stephen G Lynn", + "name" : "Stephen G Lynn" }, { - "name" : "Stephen G Lynn", + "name" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -119,7 +113,7 @@ 2 ] ], - "id" : "Stephen G Lynn" + "id" : "Ulrich Rieke" }, { "data" : [ @@ -132,76 +126,101 @@ 1 ] ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" } ] }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "tooltip" : { - "followPointer" : 1, - "headerFormat" : "{series.name}
", - "pointFormat" : "{point.name}: {point.y:f}
" + "xAxis" : { + "type" : "category" }, "series" : [ { - "colorByPoint" : 1, "data" : [ { + "drilldown" : "Luca Ferrari", "y" : 8, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" + "name" : "Luca Ferrari" }, { + "name" : "Mark Anderson", "y" : 2, - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" + "drilldown" : "Mark Anderson" }, { + "name" : "Peter Campbell Smith", "y" : 3, - "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" + "drilldown" : "Peter Campbell Smith" }, { - "y" : 2, "name" : "PokGoPun", + "y" : 2, "drilldown" : "PokGoPun" }, { - "drilldown" : "Robert DiCicco", + "y" : 1, "name" : "Robert DiCicco", - "y" : 1 + "drilldown" : "Robert DiCicco" }, { - "name" : "Roger Bell_West", "drilldown" : "Roger Bell_West", - "y" : 4 + "y" : 4, + "name" : "Roger Bell_West" }, { - "name" : "Simon Green", "drilldown" : "Simon Green", - "y" : 3 + "y" : 3, + "name" : "Simon Green" }, { + "name" : "Stephen G Lynn", "y" : 4, - "drilldown" : "Stephen G Lynn", - "name" : "Stephen G Lynn" + "drilldown" : "Stephen G Lynn" + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 }, { "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "name" : "W. Luis Mochan", + "drilldown" : "W. Luis Mochan" } ], - "name" : "The Weekly Challenge - 169" + "name" : "The Weekly Challenge - 169", + "colorByPoint" : 1 + } + ], + "legend" : { + "enabled" : 0 + }, + "tooltip" : { + "followPointer" : 1, + "pointFormat" : "{point.name}: {point.y:f}
", + "headerFormat" : "{series.name}
" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" } - ] + }, + "chart" : { + "type" : "column" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "subtitle" : { + "text" : "[Champions: 10] Last updated at 2022-06-14 20:41:46 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 169" + } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index c59e609bf2..e58bf2ba1a 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -2,8 +2,11 @@ "chart" : { "type" : "column" }, - "tooltip" : { - "pointFormat" : "{point.y:.0f}" + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2022]" + }, + "subtitle" : { + "text" : "Last updated at 2022-06-14 20:41:46 GMT" }, "series" : [ { @@ -14,36 +17,36 @@ ], [ "Perl", - 8208 + 8210 ], [ "Raku", - 4872 + 4874 ] ], "name" : "Contributions", "dataLabels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, + "format" : "{point.y:.0f}", "color" : "#FFFFFF", "y" : 10, "rotation" : -90, + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, "align" : "right", - "enabled" : "true", - "format" : "{point.y:.0f}" + "enabled" : "true" } } ], "xAxis" : { - "type" : "category", "labels" : { "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" } - } + }, + "type" : "category" }, "yAxis" : { "min" : 0, @@ -51,11 +54,8 @@ "text" : null } }, - "subtitle" : { - "text" : "Last updated at 2022-06-14 20:05:56 GMT" - }, - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2022]" + "tooltip" : { + "pointFormat" : "{point.y:.0f}" }, "legend" : { "enabled" : "false" diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 1d897066af..26a0f7088a 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,3114 +1,73 @@ { - "drilldown" : { - "series" : [ - { - "id" : "001", - "data" : [ - [ - "Perl", - 103 - ], - [ - "Raku", - 47 - ], - [ - "Blog", - 11 - ] - ], - "name" : "001" - }, - { - "name" : "002", - "data" : [ - [ - "Perl", - 79 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 10 - ] - ], - "id" : "002" - }, - { - "name" : "003", - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 9 - ] - ], - "id" : "003" - }, - { - "id" : "004", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 10 - ] - ], - "name" : "004" - }, - { - "id" : "005", - "name" : "005", - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "name" : "006", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 18 - ], - [ - "Blog", - 7 - ] - ], - "id" : "006" - }, - { - "id" : "007", - "name" : "007", - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 12 - ] - ], - "name" : "008", - "id" : "008" - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 13 - ] - ], - "name" : "009", - "id" : "009" - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 11 - ] - ], - "name" : "010", - "id" : "010" - }, - { - "name" : "011", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 10 - ] - ], - "id" : "011" - }, - { - "name" : "012", - "data" : [ - [ - "Perl", - 48 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ], - "id" : "012" - }, - { - "id" : "013", - "name" : "013", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "id" : "014", - "name" : "014", - "data" : [ - [ - "Perl", - 55 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "id" : "015", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 15 - ] - ], - "name" : "015" - }, - { - "id" : "016", - "name" : "016", - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "id" : "017", - "name" : "017", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "id" : "018", - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ], - "name" : "018" - }, - { - "name" : "019", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 13 - ] - ], - "id" : "019" - }, - { - "name" : "020", - "data" : [ - [ - "Perl", - 51 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 13 - ] - ], - "id" : "020" - }, - { - "name" : "021", - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 10 - ] - ], - "id" : "021" - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 10 - ] - ], - "name" : "022", - "id" : "022" - }, - { - "name" : "023", - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 12 - ] - ], - "id" : "023" - }, - { - "id" : "024", - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 11 - ] - ], - "name" : "024" - }, - { - "id" : "025", - "name" : "025", - "data" : [ - [ - "Perl", - 28 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "id" : "026", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 10 - ] - ], - "name" : "026" - }, - { - "id" : "027", - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 9 - ] - ], - "name" : "027" - }, - { - "name" : "028", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 9 - ] - ], - "id" : "028" - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 12 - ] - ], - "name" : "029", - "id" : "029" - }, - { - "name" : "030", - "data" : [ - [ - "Perl", - 76 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 10 - ] - ], - "id" : "030" - }, - { - "id" : "031", - "name" : "031", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "id" : "032", - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 10 - ] - ], - "name" : "032" - }, - { - "id" : "033", - "name" : "033", - "data" : [ - [ - "Perl", - 64 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 11 - ] - ], - "name" : "034", - "id" : "034" - }, - { - "id" : "035", - "name" : "035", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "name" : "036", - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 11 - ] - ], - "id" : "036" - }, - { - "id" : "037", - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 9 - ] - ], - "name" : "037" - }, - { - "id" : "038", - "name" : "038", - "data" : [ - [ - "Perl", - 34 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "id" : "039", - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 12 - ] - ], - "name" : "039" - }, - { - "name" : "040", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 10 - ] - ], - "id" : "040" - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 9 - ] - ], - "name" : "041", - "id" : "041" - }, - { - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 11 - ] - ], - "name" : "042", - "id" : "042" - }, - { - "name" : "043", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 11 - ] - ], - "id" : "043" - }, - { - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 11 - ] - ], - "name" : "044", - "id" : "044" - }, - { - "id" : "045", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 11 - ] - ], - "name" : "045" - }, - { - "id" : "046", - "name" : "046", - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "id" : "047", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ], - "name" : "047" - }, - { - "data" : [ - [ - "Perl", - 61 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 12 - ] - ], - "name" : "048", - "id" : "048" - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 12 - ] - ], - "name" : "049", - "id" : "049" - }, - { - "id" : "050", - "name" : "050", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "name" : "051", - "data" : [ - [ - "Perl", - 48 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 11 - ] - ], - "id" : "051" - }, - { - "id" : "052", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 14 - ] - ], - "name" : "052" - }, - { - "id" : "053", - "name" : "053", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 41 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "id" : "054", - "name" : "054", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 40 - ], - [ - "Blog", - 18 - ] - ] - }, - { - "name" : "055", - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 14 - ] - ], - "id" : "055" - }, - { - "name" : "056", - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 16 - ] - ], - "id" : "056" - }, - { - "id" : "057", - "name" : "057", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 13 - ] - ], - "name" : "058", - "id" : "058" - }, - { - "name" : "059", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 16 - ] - ], - "id" : "059" - }, - { - "id" : "060", - "name" : "060", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 14 - ] - ], - "name" : "061", - "id" : "061" - }, - { - "id" : "062", - "data" : [ - [ - "Perl", - 30 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 11 - ] - ], - "name" : "062" - }, - { - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 13 - ] - ], - "name" : "063", - "id" : "063" - }, - { - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 16 - ] - ], - "name" : "064", - "id" : "064" - }, - { - "id" : "065", - "data" : [ - [ - "Perl", - 34 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 15 - ] - ], - "name" : "065" - }, - { - "name" : "066", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ], - "id" : "066" - }, - { - "name" : "067", - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 18 - ] - ], - "id" : "067" - }, - { - "id" : "068", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 13 - ] - ], - "name" : "068" - }, - { - "name" : "069", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 16 - ] - ], - "id" : "069" - }, - { - "id" : "070", - "name" : "070", - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 17 - ] - ] - }, - { - "id" : "071", - "name" : "071", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "id" : "072", - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 42 - ], - [ - "Blog", - 19 - ] - ], - "name" : "072" - }, - { - "id" : "073", - "data" : [ - [ - "Perl", - 55 - ], - [ - "Raku", - 40 - ], - [ - "Blog", - 17 - ] - ], - "name" : "073" - }, - { - "data" : [ - [ - "Perl", - 58 - ], - [ - "Raku", - 39 - ], - [ - "Blog", - 20 - ] - ], - "name" : "074", - "id" : "074" - }, - { - "id" : "075", - "name" : "075", - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 20 - ] - ] - }, - { - "name" : "076", - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 16 - ] - ], - "id" : "076" - }, - { - "id" : "077", - "name" : "077", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "id" : "078", - "name" : "078", - "data" : [ - [ - "Perl", - 68 - ], - [ - "Raku", - 41 - ], - [ - "Blog", - 18 - ] - ] - }, - { - "id" : "079", - "data" : [ - [ - "Perl", - 68 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 17 - ] - ], - "name" : "079" - }, - { - "name" : "080", - "data" : [ - [ - "Perl", - 75 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 16 - ] - ], - "id" : "080" - }, - { - "name" : "081", - "data" : [ - [ - "Perl", - 65 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 15 - ] - ], - "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", - "data" : [ - [ - "Perl", - 71 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 12 - ] - ], - "id" : "084" - }, - { - "name" : "085", - "data" : [ - [ - "Perl", - 64 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 18 - ] - ], - "id" : "085" - }, - { - "id" : "086", - "data" : [ - [ - "Perl", - 58 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 15 - ] - ], - "name" : "086" - }, - { - "id" : "087", - "name" : "087", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 65 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 20 - ] - ], - "name" : "088", - "id" : "088" - }, - { - "id" : "089", - "name" : "089", - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 20 - ] - ] - }, - { - "id" : "090", - "data" : [ - [ - "Perl", - 57 - ], - [ - "Raku", - 39 - ], - [ - "Blog", - 17 - ] - ], - "name" : "090" - }, - { - "id" : "091", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 16 - ] - ], - "name" : "091" - }, - { - "name" : "092", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 16 - ] - ], - "id" : "092" - }, - { - "id" : "093", - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 16 - ] - ], - "name" : "093" - }, - { - "name" : "094", - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 17 - ] - ], - "id" : "094" - }, - { - "id" : "095", - "name" : "095", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 19 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 19 - ] - ], - "name" : "096", - "id" : "096" - }, - { - "id" : "097", - "name" : "097", - "data" : [ - [ - "Perl", - 63 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 19 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 17 - ] - ], - "name" : "098", - "id" : "098" - }, - { - "id" : "099", - "name" : "099", - "data" : [ - [ - "Perl", - 56 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "id" : "100", - "name" : "100", - "data" : [ - [ - "Perl", - 69 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 21 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 13 - ] - ], - "name" : "101", - "id" : "101" - }, - { - "id" : "102", - "name" : "102", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 15 - ] - ], - "name" : "103", - "id" : "103" - }, - { - "id" : "104", - "name" : "104", - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "id" : "105", - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 23 - ], - [ - "Blog", - 14 - ] - ], - "name" : "105" - }, - { - "id" : "106", - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 17 - ] - ], - "name" : "106" - }, - { - "id" : "107", - "name" : "107", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 19 - ] - ] - }, - { - "id" : "108", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 20 - ] - ], - "name" : "108" - }, - { - "id" : "109", - "data" : [ - [ - "Perl", - 48 - ], - [ - "Raku", - 37 - ], - [ - "Blog", - 22 - ] - ], - "name" : "109" - }, - { - "id" : "110", - "name" : "110", - "data" : [ - [ - "Perl", - 51 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 25 - ] - ] - }, - { - "id" : "111", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 17 - ] - ], - "name" : "111" - }, - { - "id" : "112", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 19 - ] - ], - "name" : "112" - }, - { - "id" : "113", - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 19 - ] - ], - "name" : "113" - }, - { - "id" : "114", - "name" : "114", - "data" : [ - [ - "Perl", - 53 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 21 - ] - ] - }, - { - "id" : "115", - "name" : "115", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 20 - ] - ] - }, - { - "id" : "116", - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 17 - ] - ], - "name" : "116" - }, - { - "name" : "117", - "data" : [ -