diff options
| -rw-r--r-- | challenge-113/ulrich-rieke/perl/ch-1.pl | 43 | ||||
| -rw-r--r-- | challenge-113/ulrich-rieke/raku/ch-1.raku | 39 | ||||
| -rw-r--r-- | challenge-113/ulrich-rieke/raku/ch-2.raku | 43 | ||||
| -rw-r--r-- | stats/pwc-current.json | 225 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 76 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1562 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 762 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 112 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 86 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 118 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 130 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 34 |
16 files changed, 1774 insertions, 1630 deletions
diff --git a/challenge-113/ulrich-rieke/perl/ch-1.pl b/challenge-113/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..347b697412 --- /dev/null +++ b/challenge-113/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,43 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; +use List::Util qw ( sum ) ; +use Algorithm::Combinatorics qw ( combinations ) ; + +my $N = $ARGV[0] ; +my $D = $ARGV[ 1 ] ; +my @possibleNumbers = grep { $_ =~ /$D/ } (1 .. $N) ; +my $nums = scalar @possibleNumbers ; +if ( $N == $D ) { + say 1 ; + exit( 0 ) ; +} +else { + if ( $nums == 0 or $nums == 1 ) { + say 0 ; + exit( 1 ) ; + } + if ( $nums == 2 ) { + if ( $possibleNumbers[ 0 ] + $possibleNumbers[1] == $N ) { + say 1 ; + exit( 0 ) ; + } + else { + say 0 ; + exit( 1 ) ; + } + } + if ( $nums > 2 ) { + for my $i ( 2 .. $nums ) { + my $iter = combinations( \@possibleNumbers , $i ) ; + while ( my $p = $iter->next ) { + if ( sum( @$p ) == $N ) { + say 1 ; + exit( 0 ) ; + } + } + } + say 0 ; + } +} diff --git a/challenge-113/ulrich-rieke/raku/ch-1.raku b/challenge-113/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..e884adb74a --- /dev/null +++ b/challenge-113/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,39 @@ +use v6 ; + +sub MAIN( Int $N , Int $D ) { + if ( $N == $D ) { + say 1 ; + exit( 1 ) ; + } + else { +#find numbers below $N containing $D + my @possibleNumbers = (1 .. $N ).grep( { ~$_ ~~ /$D/ } ) ; + if (@possibleNumbers.elems == 1 ) { + say 0 ; #no valid sum, only one number contains $D + exit( 0 ) ; + } + if ( @possibleNumbers.elems == 2 ) { + if ( @possibleNumbers[0] + @possibleNumbers[1] == $N ) { + say 1 ; + exit( 0 ) ; + } + else { + say 0 ; + exit( 1 ) ; + } + } + if ( (my $nums = @possibleNumbers.elems) > 2 ) { +#there can be combinations of 2 and more that sum up to $D + for ( 2 .. $nums ) -> $i { + my @combis = @possibleNumbers.combinations($i ) ; + for @combis -> $combi { + if ( ([+] $combi) == $N ) {#valid combination found + say 1 ; + exit( 0 ) ; + } + } + } + } + say 0 ;#nothing found , everything else would have returned already + } +} diff --git a/challenge-113/ulrich-rieke/raku/ch-2.raku b/challenge-113/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..179133b101 --- /dev/null +++ b/challenge-113/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,43 @@ +use v6 ; + +#we enter the binary tree level by level. That means, that at every level +#numbers are ordered from left to right. To denote different parent nodes, +#we introduce subarrays at every level when needed +sub sumElements( $element ) { + my $sum = 0 ; + for (0 .. $element.elems - 1) -> $i { + if ( $element[ $i ] ~~ Int ) { + $sum += $element[ $i ] ; + } + if ( $element[ $i ] ~~ Array ) { + $sum += [+] |$element[ $i ] ; + } + } + return $sum ; +} + +sub calculateElement( $element , $sum ) { + my $output ; + for (0 .. $element.elems - 1 ) -> $i { + if ( $element[ $i ] ~~ Int ) { + $output.push( $sum - $element[ $i ] ) ; + } + if ( $element[ $i ] ~~ Array ) { + my $restsums ; + for (0 .. $element[ $i ].elems - 1) -> $j { + $restsums.push( $sum - $element[$i][$j] ) ; + } + $output.push( $restsums ) ; + } + } + return $output ; +} + +my @binary_input = ( [1] , [2 , 3] , [[4] , [5 , 6 ]] , [7] ) ; +#we substitute every node by the sum of all nodes - the node itself +#due to the rooting and ordering principles of a binary tree this brings +#about a reverse ordering of the tree +my $treesum = 0 ; +@binary_input.map( { $treesum += sumElements( $_ ) } ) ; +my @output_binary = @binary_input.map( { calculateElement( $_ , $treesum) }) ; +say @output_binary ; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index b360a6ecf3..098595648f 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,33 +1,122 @@ { + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 113" + }, "chart" : { "type" : "column" }, "tooltip" : { - "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/>", - "followPointer" : 1 + "followPointer" : 1, + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + }, + "subtitle" : { + "text" : "[Champions: 11] Last updated at 2021-05-18 15:36:02 GMT" + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "name" : "Perl Weekly Challenge - 113", + "colorByPoint" : 1, + "data" : [ + { + "y" : 2, + "drilldown" : "Ben Davies", + "name" : "Ben Davies" + }, + { + "name" : "Dave Jacoby", + "drilldown" : "Dave Jacoby", + "y" : 2 + }, + { + "y" : 4, + "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti" + }, + { + "name" : "James Smith", + "y" : 2, + "drilldown" : "James Smith" + }, + { + "name" : "Luca Ferrari", + "y" : 4, + "drilldown" : "Luca Ferrari" + }, + { + "name" : "Mark Anderson", + "y" : 2, + "drilldown" : "Mark Anderson" + }, + { + "y" : 2, + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "y" : 4, + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "name" : "Simon Green", + "drilldown" : "Simon Green", + "y" : 3 + }, + { + "drilldown" : "Stuart Little", + "y" : 4, + "name" : "Stuart Little" + }, + { + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke", + "y" : 3 + } + ] + } + ], + "legend" : { + "enabled" : 0 }, "drilldown" : { "series" : [ { "name" : "Ben Davies", - "id" : "Ben Davies", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Ben Davies" }, { + "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", 2 ] - ], - "id" : "Dave Jacoby", - "name" : "Dave Jacoby" + ] }, { "id" : "Flavio Poletti", @@ -44,17 +133,17 @@ "name" : "Flavio Poletti" }, { - "name" : "James Smith", + "id" : "James Smith", "data" : [ [ "Perl", 2 ] ], - "id" : "James Smith" + "name" : "James Smith" }, { - "id" : "Luca Ferrari", + "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -65,11 +154,11 @@ 2 ] ], - "name" : "Luca Ferrari" + "id" : "Luca Ferrari" }, { - "name" : "Mark Anderson", "id" : "Mark Anderson", + "name" : "Mark Anderson", "data" : [ [ "Raku", @@ -78,14 +167,14 @@ ] }, { - "name" : "Niels van Dijke", "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Niels van Dijke" }, { "id" : "Roger Bell_West", @@ -103,7 +192,6 @@ }, { "name" : "Simon Green", - "id" : "Simon Green", "data" : [ [ "Perl", @@ -113,9 +201,12 @@ "Blog", 1 ] - ] + ], + "id" : "Simon Green" }, { + "id" : "Stuart Little", + "name" : "Stuart Little", "data" : [ [ "Perl", @@ -125,94 +216,22 @@ "Raku", 2 ] + ] + }, + { + "id" : "Ulrich Rieke", + "data" : [ + [ + "Perl", + 1 + ], + [ + "Raku", + 2 + ] ], - "id" : "Stuart Little", - "name" : "Stuart Little" + "name" : "Ulrich Rieke" } ] - }, - "subtitle" : { - "text" : "[Champions: 10] Last updated at 2021-05-18 13:16:26 GMT" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "xAxis" : { - "type" : "category" - }, - "title" : { - "text" : "Perl Weekly Challenge - 113" - }, - "series" : [ - { - "name" : "Perl Weekly Challenge - 113", - "colorByPoint" : 1, - "data" : [ - { - "drilldown" : "Ben Davies", - "y" : 2, - "name" : "Ben Davies" - }, - { - "y" : 2, - "name" : "Dave Jacoby", - "drilldown" : "Dave Jacoby" - }, - { - "y" : 4, - "name" : "Flavio Poletti", - "drilldown" : "Flavio Poletti" - }, - { - "drilldown" : "James Smith", - "y" : 2, - "name" : "James Smith" - }, - { - "y" : 4, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "drilldown" : "Mark Anderson", - "y" : 2, - "name" : "Mark Anderson" - }, - { - "drilldown" : "Niels van Dijke", - "name" : "Niels van Dijke", - "y" : 2 - }, - { - "name" : "Roger Bell_West", - "y" : 4, - "drilldown" : "Roger Bell_West" - }, - { - "name" : "Simon Green", - "y" : 3, - "drilldown" : "Simon Green" - }, - { - "name" : "Stuart Little", - "y" : 4, - "drilldown" : "Stuart Little" - } - ] - } - ] + } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 3e7c8a1b76..a5ccd9ff76 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,21 +1,49 @@ { - "legend" : { - "enabled" : "false" + "chart" : { + "type" : "column" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "subtitle" : { + "text" : "Last updated at 2021-05-18 15:36:01 GMT" }, "xAxis" : { "labels" : { "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" } }, "type" : "category" }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, + "legend" : { + "enabled" : "false" }, "series" : [ { + "dataLabels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "rotation" : -90, + "enabled" : "true", + "y" : 10, + "color" : "#FFFFFF", + "format" : "{point.y:.0f}", + "align" : "right" + }, + "name" : "Contributions", "data" : [ [ "Blog", @@ -23,41 +51,13 @@ ], [ "Perl", - 5329 + 5330 ], [ "Raku", - 3380 + 3382 ] - ], - "dataLabels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "rotation" : -90, - "color" : "#FFFFFF", - "enabled" : "true", - "align" : "right", - "y" : 10, - "format" : "{point.y:.0f}" - }, - "name" : "Contributions" + ] } - ], - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "subtitle" : { - "text" : "Last updated at 2021-05-18 13:16:25 GMT" - }, - "chart" : { - "type" : "column" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - } + ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index c747f104f3..acf10760c1 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,6 +1,11 @@ { - "legend" : { - "enabled" : "false" + "tooltip" : { + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true", + "headerFormat" : "<span style=\"font-size:11px\"></span>" + }, + "chart" : { + "type" : "column" }, "title" : { "text" : "Perl Weekly Challenge Language" @@ -8,579 +13,14 @@ "xAxis" : { "type" : "category" }, - "series" : [ - { - "name" : "Perl Weekly Challenge Languages", - "colorByPoint" : "true", - "data" : [ - { - "drilldown" : "001", - "y" : 161, - "name" : "#001" - }, - { - "drilldown" : "002", - "name" : "#002", - "y" : 125 - }, - { - "y" : 81, - "name" : "#003", - "drilldown" : "003" - }, - { - "drilldown" : "004", - "y" : 99, - "name" : "#004" - }, - { - "drilldown" : "005", - "name" : "#005", - "y" : 78 - }, - { - "y" : 58, - "name" : "#006", - "drilldown" : "006" - }, - { - "y" : 64, - "name" : "#007", - "drilldown" : "007" - }, - { - "name" : "#008", - "y" : 78, - "drilldown" : "008" - }, - { - "drilldown" : "009", - "y" : 76, - "name" : "#009" - }, - { - "drilldown" : "010", - "y" : 65, - "name" : "#010" - }, - { - "drilldown" : "011", - "y" : 85, - "name" : "#011" - }, - { - "name" : "#012", - "y" : 89, - "drilldown" : "012" - }, - { - "y" : 85, - "name" : "#013", - "drilldown" : "013" - }, - { - "drilldown" : "014", - "name" : "#014", - "y" : 101 - }, - { - "drilldown" : "015", - "name" : "#015", - "y" : 99 - }, - { - "name" : "#016", - "y" : 71, - "drilldown" : "016" - }, - { - "drilldown" : "017", - "y" : 84, - "name" : "#017" - }, - { - "drilldown" : "018", - "name" : "#018", - "y" : 81 - }, - { - "y" : 103, - "name" : "#019", - "drilldown" : "019" - }, - { - "y" : 101, - "name" : "#020", - "drilldown" : "020" - }, - { - "name" : "#021", - "y" : 72, - "drilldown" : "021" - }, - { - "drilldown" : "022", - "name" : "#022", - "y" : 68 - }, - { - "y" : 97, - "name" : "#023", - "drilldown" : "023" - }, - { - "name" : "#024", - "y" : 74, - "drilldown" : "024" - }, - { - "y" : 59, - "name" : "#025", - "drilldown" : "025" - }, - { - "drilldown" : "026", - "y" : 74, - "name" : "#026" - }, - { - "drilldown" : "027", - "y" : 60, - "name" : "#027" - }, - { - "drilldown" : "028", - "name" : "#028", - "y" : 80 - }, - { - "name" : "#029", - "y" : 79, - "drilldown" : "029" - }, - { - "drilldown" : "030", - "name" : "#030", - "y" : 117 - }, - { - "drilldown" : "031", - "y" : 89, - "name" : "#031" - }, - { - "drilldown" : "032", - "y" : 94, - "name" : "#032" - }, - { - "drilldown" : "033", - "name" : "#033", - "y" : 110 - }, - { - "name" : "#034", - "y" : 64, - "drilldown" : "034" - }, - { - "drilldown" : "035", - "y" : 64, - "name" : "#035" - }, - { - "drilldown" : "036", - "y" : 68, - "name" : "#036" - }, - { - "drilldown" : "037", - "name" : "#037", - "y" : 67 - }, - { - "drilldown" : "038", - "y" : 68, - "name" : "#038" - }, - { - "drilldown" : "039", - "name" : "#039", - "y" : 62 - }, - { - "name" : "#040", - "y" : 73, - "drilldown" : "040" - }, - { - "drilldown" : "041", - "y" : 76, - "name" : "#041" - }, - { - "name" : "#042", - "y" : 92, - "drilldown" : "042" - }, - { - "y" : 68, - "name" : "#043", - "drilldown" : "043" - }, - { - "name" : "#044", - "y" : 85, - "drilldown" : "044" - }, - { - "drilldown" : "045", - "y" : 96, - "name" : "#045" - }, - { - "drilldown" : "046", - "name" : "#046", - "y" : 87 - }, - { - "y" : 84, - "name" : "#047", - "drilldown" : "047" - }, - { - "drilldown" : "048", - "y" : 108, - "name" : "#048" - }, - { - "y" : 89, - "name" : "#049", - "drilldown" : "049" - }, - { - "y" : 98, - "name" : "#050", - "drilldown" : "050" - }, - { - "name" : "#051", - "y" : 89, - "drilldown" : "051" - }, - { - "drilldown" : "052", - "name" : "#052", - "y" : 91 - }, - { - "name" : "#053", - "y" : 101, - "drilldown" : "053" - }, - { - "y" : 103, - "name" : "#054", - "drilldown" : "054" - }, - { - "y" : 88, - "name" : "#055", - "drilldown" : "055" - }, - { - "y" : 95, - "name" : "#056", - "drilldown" : "056" - }, - { - "drilldown" : "057", - "name" : "#057", - "y" : 80 - }, - { - "drilldown" : "058", - "y" : 69, - "name" : "#058" - }, - { - "y" : 89, - "name" : "#059", - "drilldown" : "059" - }, - { - "drilldown" : "060", - "name" : "#060", - "y" : 85 - }, - { - "name" : "#061", - "y" : 81, - "drilldown" : "061" - }, - { - "drilldown" : "062", - "y" : 58, - "name" : "#062" - }, - { - "drilldown" : "063", - "name" : "#063", - "y" : 89 - }, - { - "drilldown" : "064", - "name" : "#064", - "y" : 80 - }, - { - "name" : "#065", - "y" : 73, - "drilldown" : "065" - }, - { - "drilldown" : "066", - "y" : 84, - "name" : "#066" - }, - { - "y" : 90, - "name" : "#067", - "drilldown" : "067" - }, - { - "drilldown" : "068", - "y" : 75, - "name" : "#068" - }, - { - "drilldown" : "069", - "y" : 83, - "name" : "#069" - }, - { - "drilldown" : "070", - "y" : 93, - "name" : "#070" - }, - { - "name" : "#071", - "y" : 78, - "drilldown" : "071" - }, - { - "drilldown" : "072", - "y" : 112, - "name" : "#072" - }, - { - "name" : "#073", - "y" : 110, - "drilldown" : "073" - }, - { - "name" : "#074", - "y" : 115, - "drilldown" : "074" - }, - { - "y" : 113, - "name" : "#075", - "drilldown" : "075" - }, - { - "name" : "#076", - "y" : 99, - "drilldown" : "076" - }, - { - "y" : 98, - "name" : "#077", - "drilldown" : "077" - }, - { - "name" : "#078", - "y" : 127, - "drilldown" : "078" - }, - { - "name" : "#079", - "y" : 122, - "drilldown" : "079" - }, - { - "name" : "#080", - "y" : 127, - "drilldown" : "080" - }, - { - "drilldown" : "081", - "y" : 114, - "name" : "#081" - }, - { - "y" : 114, - "name" : "#082", - "drilldown" : "082" - }, - { - "y" : 127, - "name" : "#083", - "drilldown" : "083" - }, - { - "y" : 119, - "name" : "#084", - "drilldown" : "084" - }, - { - "drilldown" : "085", - "y" : 114, - "name" : "#085" - }, - { - "drilldown" : "086", - "name" : "#086", - "y" : 104 - }, - { - "drilldown" : "087", - "name" : "#087", - "y" : 101 - }, - { - "drilldown" : "088", - "name" : "#088", - "y" : 121 - }, - { - "name" : "#089", - "y" : 113, - "drilldown" : "089" - }, - { - "name" : "#090", - "y" : 113, - "drilldown" : "090" - }, - { - "name" : "#091", - "y" : 108, - "drilldown" : "091" - }, - { - "drilldown" : "092", - "y" : 98, - "name" : "#092" - }, - { - "drilldown" : "093", - "y" : 87, - "name" : "#093" - }, - { - "y" : 87, - "name" : "#094", - "drilldown" : "094" - }, - { - "y" : 108, - "name" : "#095", - "drilldown" : "095" - }, - { - "y" : 108, - "name" : "#096", - "drilldown" : "096" - }, - { - "drilldown" : "097", - "y" : 111, - "name" : "#097" - }, - { - "name" : "#098", - "y" : 108, - "drilldown" : "098" - }, - { - "name" : "#099", - "y" : 97, - "drilldown" : "099" - }, - { - "drilldown" : "100", - "name" : "#100", - "y" : 120 - }, - { - "drilldown" : "101", - "name" : "#101", - "y" : 83 - }, - { - "name" : "#102", - "y" : 90, - "drilldown" : "102" - }, - { - "name" : "#103", - "y" : 79, - "drilldown" : "103" - }, - { - "drilldown" : "104", - "y" : 84, - "name" : "#104" - }, - { |
