diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-23 18:08:13 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-23 18:08:13 +0100 |
| commit | 8fa4acfae67dcf037675971ca48c73ef9460191e (patch) | |
| tree | f0f09063b963c45c9844d29aa5858f14f6a82d41 | |
| parent | a7d9a3210528d31dec5de06b688eaab954f13436 (diff) | |
| download | perlweeklychallenge-club-8fa4acfae67dcf037675971ca48c73ef9460191e.tar.gz perlweeklychallenge-club-8fa4acfae67dcf037675971ca48c73ef9460191e.tar.bz2 perlweeklychallenge-club-8fa4acfae67dcf037675971ca48c73ef9460191e.zip | |
- Added solutions by Ulrich Rieke.
| -rw-r--r-- | challenge-079/ulrich-rieke/perl/ch-2.pl | 55 | ||||
| -rw-r--r-- | challenge-079/ulrich-rieke/raku/ch-1.raku | 18 | ||||
| -rw-r--r-- | challenge-079/ulrich-rieke/raku/ch-2.raku | 44 | ||||
| -rw-r--r-- | stats/pwc-current.json | 181 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 64 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 676 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 758 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 130 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 92 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 44 |
15 files changed, 1194 insertions, 1058 deletions
diff --git a/challenge-079/ulrich-rieke/perl/ch-2.pl b/challenge-079/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..f57840592a --- /dev/null +++ b/challenge-079/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,55 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; +use feature 'say' ; + +sub enterArray { + my @numbers ; + print "Enter a number ( end to end ) :\n" ; + my $number = <STDIN> ; + chomp $number ; + while ( $number ne "end" ) { + if ( $number =~ /\d+/ ) { + push( @numbers, $number ) ; + } + print "Enter a number ( end to end ) :\n" ; + $number = <STDIN> ; + chomp $number ; + } + return @numbers ; +} + +sub findSmaller { + my $a = shift ; + my $b = shift ; + if ( $a < $b ) { + return $a ; + } + else { + return $b ; + } +} + +my @array = enterArray( ) ; +my $len = scalar @array ; +my $drops = 0 ; +my $oldMax ; +my $oldMaxIndex ; +my $newMax ; +my $newMaxIndex ; +my $current = 0 ; +while ( $current < $len - 1 ) { + if ( $array[ $current + 1 ] < $array[ $current ] ) { + $oldMax = $array[ $current ] ; + $oldMaxIndex = $current ; + } + if ( $array[ $current + 1 ] > $array[ $current ] ) { + $newMax = $array[ $current + 1 ] ; + $newMaxIndex = $current + 1 ; + my $smaller = findSmaller( $oldMax , $newMax ) ; + map { $drops += $smaller - $_ ; $_ = $smaller } + @array[$oldMaxIndex + 1 .. $newMaxIndex - 1] ; + } + $current++ ; +} +say $drops ; diff --git a/challenge-079/ulrich-rieke/raku/ch-1.raku b/challenge-079/ulrich-rieke/raku/ch-1.raku new file mode 100644 index 0000000000..980bed8eef --- /dev/null +++ b/challenge-079/ulrich-rieke/raku/ch-1.raku @@ -0,0 +1,18 @@ +use v6 ; + +sub countOnes( Str $num ) { + my $ones = 0 ; + my $len = $num.chars ; + for ( 0 .. $len - 1 ) -> $i { + if ( $num.substr( $i , 1 ) eq "1" ) { + $ones++ ; + } + } + return $ones ; +} + +sub MAIN( Int $N ) { + my @array = (1 ..$N).map( {.base(2).Str} ) ; + my $ones = [+] @array.map( { countOnes( $_ ) } ) ; + say "$ones % 1000000007 = { $ones % 1000000007 }" ; +} diff --git a/challenge-079/ulrich-rieke/raku/ch-2.raku b/challenge-079/ulrich-rieke/raku/ch-2.raku new file mode 100644 index 0000000000..aeb88b8dcf --- /dev/null +++ b/challenge-079/ulrich-rieke/raku/ch-2.raku @@ -0,0 +1,44 @@ +use v6 ; + +sub enterArray( ) { + my @array ; + my $line = prompt "Enter an integer ( -1 to end ) : " ; + while ( $line != -1 ) { + @array.push( $line ) ; + $line = prompt "Next number : " ; + } + return @array ; +} + +sub findSmaller( Int $a , Int $b --> Int ) { + if ( $a > $b ) { + return $b ; + } + else { + return $a ; + } +} + +my @array = enterArray( ) ; +my $drops = 0 ; +my $oldMax ; #for a local number bigger than its right neighbour +my $oldMaxIndex ; #index of $oldMax in @array +my $newMax ; #for a local number bigger than its left neighbour +my $newMaxIndex ; #index of $newMax in @array +my $currentIndex = 0 ; +my $len = @array.elems ; +while ( $currentIndex < $len - 1) { + if ( @array[$currentIndex + 1] < @array[$currentIndex] ) { + $oldMax = @array[ $currentIndex ] ; + $oldMaxIndex = $currentIndex ; + } + if ( @array[ $currentIndex + 1 ] > @array[ $currentIndex ] ) { + $newMax = @array[ $currentIndex + 1 ] ; + $newMaxIndex = $currentIndex + 1 ; + my $smaller = findSmaller( $oldMax, $newMax ) ; + @array[ $oldMaxIndex + 1 .. $newMaxIndex - 1].map: { $drops += + $smaller - $_ ; $_ = $smaller } ; + } + $currentIndex++ ; +} +say $drops ; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 21619d3aeb..20624d84f8 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -2,29 +2,23 @@ "xAxis" : { "type" : "category" }, - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "Perl Weekly Challenge - 079" - }, "series" : [ { "data" : [ { - "name" : "Abigail", "drilldown" : "Abigail", + "name" : "Abigail", "y" : 2 }, { "y" : 2, - "drilldown" : "Andrew Shitov", - "name" : "Andrew Shitov" + "name" : "Andrew Shitov", + "drilldown" : "Andrew Shitov" }, { "drilldown" : "Dave Cross", - "y" : 2, - "name" : "Dave Cross" + "name" : "Dave Cross", + "y" : 2 }, { "name" : "E. Choroba", @@ -32,54 +26,54 @@ "y" : 2 }, { - "name" : "Flavio Poletti", "y" : 4, - "drilldown" : "Flavio Poletti" + "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti" }, { - "y" : 2, + "name" : "James Smith", "drilldown" : "James Smith", - "name" : "James Smith" + "y" : 2 }, { + "name" : "Kang-min Liu", "drilldown" : "Kang-min Liu", - "y" : 2, - "name" : "Kang-min Liu" + "y" : 2 }, { "drilldown" : "Mark Anderson", - "y" : 2, - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "y" : 2 }, { - "name" : "Markus Holzer", "y" : 2, - "drilldown" : "Markus Holzer" + "drilldown" : "Markus Holzer", + "name" : "Markus Holzer" }, { "name" : "Mohammad S Anwar", - "y" : 2, - "drilldown" : "Mohammad S Anwar" + "drilldown" : "Mohammad S Anwar", + "y" : 2 }, { - "drilldown" : "Myoungjin Jeon", "y" : 1, - "name" : "Myoungjin Jeon" + "name" : "Myoungjin Jeon", + "drilldown" : "Myoungjin Jeon" }, { - "name" : "Niels van Dijke", "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", "y" : 2 }, { - "name" : "Nuno Vieira", "y" : 2, + "name" : "Nuno Vieira", "drilldown" : "Nuno Vieira" }, { + "name" : "Roger Bell_West", "drilldown" : "Roger Bell_West", - "y" : 5, - "name" : "Roger Bell_West" + "y" : 5 }, { "name" : "Simon Proctor", @@ -87,37 +81,20 @@ "y" : 2 }, { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 3 + }, + { + "drilldown" : "Vinod Kumar K", "name" : "Vinod Kumar K", - "y" : 1, - "drilldown" : "Vinod Kumar K" + "y" : 1 } ], "colorByPoint" : 1, "name" : "Perl Weekly Challenge - 079" } ], - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "tooltip" : { - "followPointer" : 1, - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" - }, "drilldown" : { "series" : [ { @@ -127,42 +104,40 @@ 2 ] ], - "name" : "Abigail", - "id" : "Abigail" + "id" : "Abigail", + "name" : "Abigail" }, { + "id" : "Andrew Shitov", + "name" : "Andrew Shitov", "data" : [ [ "Raku", 2 ] - ], - "name" : "Andrew Shitov", - "id" : "Andrew Shitov" + ] }, { + "id" : "Dave Cross", + "name" : "Dave Cross", "data" : [ [ "Perl", 2 ] - ], - "id" : "Dave Cross", - "name" : "Dave Cross" + ] }, { + "name" : "E. Choroba", + "id" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ], - "id" : "E. Choroba", - "name" : "E. Choroba" + ] }, { - "id" : "Flavio Poletti", - "name" : "Flavio Poletti", "data" : [ [ "Perl", @@ -172,7 +147,9 @@ "Blog", 2 ] - ] + ], + "name" : "Flavio Poletti", + "id" : "Flavio Poletti" }, { "name" : "James Smith", @@ -195,14 +172,14 @@ "id" : "Kang-min Liu" }, { - "id" : "Mark Anderson", - "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { "data" : [ @@ -215,6 +192,8 @@ "name" : "Markus Holzer" }, { + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", "data" : [ [ "Perl", @@ -224,13 +203,11 @@ "Raku", 1 ] - ], - "id" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" + ] }, { - "name" : "Myoungjin Jeon", "id" : "Myoungjin Jeon", + "name" : "Myoungjin Jeon", "data" : [ [ "Raku", @@ -239,14 +216,14 @@ ] }, { + "id" : "Niels van Dijke", + "name" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ], - "name" : "Niels van Dijke", - "id" : "Niels van Dijke" + ] }, { "data" : [ @@ -255,8 +232,8 @@ 2 ] ], - "name" : "Nuno Vieira", - "id" : "Nuno Vieira" + "id" : "Nuno Vieira", + "name" : "Nuno Vieira" }, { "id" : "Roger Bell_West", @@ -291,14 +268,56 @@ [ "Perl", 1 + ], + [ + "Raku", + 2 ] ], + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" + }, + { "name" : "Vinod Kumar K", - "id" : "Vinod Kumar K" + "id" : "Vinod Kumar K", + "data" : [ + [ + "Perl", + 1 + ] + ] } ] }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 079" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "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 + }, "subtitle" : { - "text" : "[Champions: 16] Last updated at 2020-09-23 09:02:18 GMT" + "text" : "[Champions: 17] Last updated at 2020-09-23 17:08:01 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 444554103c..862997c4a6 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,24 +1,28 @@ { + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Last updated at 2020-09-23 17:08:01 GMT" + }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, - "subtitle" : { - "text" : "Last updated at 2020-09-23 09:02:18 GMT" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, "series" : [ { - "dataLabels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "color" : "#FFFFFF", - "align" : "right", - "enabled" : "true", - "rotation" : -90, - "format" : "{point.y:.0f}", - "y" : 10 - }, + "name" : "Contributions", "data" : [ [ "Blog", @@ -26,25 +30,27 @@ ], [ "Perl", - 3337 + 3338 ], [ "Raku", - 2171 + 2173 ] ], - "name" : "Contributions" + "dataLabels" : { + "rotation" : -90, + "y" : 10, + "color" : "#FFFFFF", + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "enabled" : "true", + "align" : "right", + "format" : "{point.y:.0f}" + } } ], - "legend" : { - "enabled" : "false" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, "xAxis" : { "type" : "category", "labels" : { @@ -53,11 +59,5 @@ "fontSize" : "13px" } } - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, - "chart" : { - "type" : "column" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index c0dcd59aef..e787cb4ae7 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,12 +1,26 @@ { + "chart" : { + "type" : "column" + }, + "legend" : { + "enabled" : "false" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "followPointer" : "true", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" + }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-09-23 09:02:18 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-09-23 17:08:01 GMT" }, "drilldown" : { "series" : [ { - "id" : "001", - "name" : "001", "data" : [ [ "Perl", @@ -20,11 +34,13 @@ "Blog", 11 ] - ] + ], + "name" : "001", + "id" : "001" }, { - "name" : "002", "id" : "002", + "name" : "002", "data" : [ [ "Perl", @@ -41,8 +57,8 @@ ] }, { - "id" : "003", "name" : "003", + "id" : "003", "data" : [ [ "Perl", @@ -59,8 +75,6 @@ ] }, { - "name" : "004", - "id" : "004", "data" : [ [ "Perl", @@ -74,11 +88,11 @@ "Blog", 10 ] - ] + ], + "id" : "004", + "name" : "004" }, { - "id" : "005", - "name" : "005", "data" : [ [ "Perl", @@ -92,9 +106,13 @@ "Blog", 12 ] - ] + ], + "id" : "005", + "name" : "005" }, { + "id" : "006", + "name" : "006", "data" : [ [ "Perl", @@ -108,13 +126,9 @@ "Blog", 7 ] - ], - "name" : "006", - "id" : "006" + ] }, { - "name" : "007", - "id" : "007", "data" : [ [ "Perl", @@ -128,11 +142,11 @@ "Blog", 10 ] - ] + ], + "name" : "007", + "id" : "007" }, { - "name" : "008", - "id" : "008", "data" : [ [ "Perl", @@ -146,9 +160,13 @@ "Blog", 12 ] - ] + ], + "name" : "008", + "id" : "008" }, { + "name" : "009", + "id" : "009", "data" : [ [ "Perl", @@ -162,11 +180,11 @@ "Blog", 13 ] - ], - "name" : "009", - "id" : "009" + ] }, { + "name" : "010", + "id" : "010", "data" : [ [ "Perl", @@ -180,9 +198,7 @@ "Blog", 11 ] - ], - "name" : "010", - "id" : "010" + ] }, { "data" : [ @@ -199,10 +215,12 @@ 10 ] ], - "id" : "011", - "name" : "011" + "name" : "011", + "id" : "011" }, { + "name" : "012", + "id" : "012", "data" : [ [ "Perl", @@ -216,11 +234,11 @@ "Blog", 11 ] - ], - "id" : "012", - "name" : "012" + ] }, { + "id" : "013", + "name" : "013", "data" : [ [ "Perl", @@ -234,13 +252,9 @@ "Blog", 13 ] - ], - "name" : "013", - "id" : "013" + ] }, { - "id" : "014", - "name" : "014", "data" : [ [ "Perl", @@ -254,7 +268,9 @@ "Blog", 15 ] - ] + ], + "id" : "014", + "name" : "014" }, { "name" : "015", @@ -275,8 +291,6 @@ ] }, { - "name" : "016", - "id" : "016", "data" : [ [ "Perl", @@ -290,11 +304,11 @@ "Blog", 12 ] - ] + ], + "name" : "016", + "id" : "016" }, { - "name" : "017", - "id" : "017", "data" : [ [ "Perl", @@ -308,9 +322,13 @@ "Blog", 12 ] - ] + ], + "name" : "017", + "id" : "017" }, { + "id" : "018", + "name" : "018", "data" : [ [ "Perl", @@ -324,9 +342,7 @@ "Blog", 14 ] - ], - "id" : "018", - "name" : "018" + ] }, { "data" : [ @@ -343,10 +359,12 @@ 13 ] ], - "name" : "019", - "id" : "019" + "id" : "019", + "name" : "019" }, { + "id" : "020", + "name" : "020", "data" : [ [ "Perl", @@ -360,11 +378,11 @@ "Blog", 13 ] - ], - "name" : "020", - "id" : "020" + ] }, { + "name" : "021", + "id" : "021", "data" : [ [ "Perl", @@ -378,9 +396,7 @@ "Blog", 10 ] - ], - "name" : "021", - "id" : "021" + ] }, { "data" : [ @@ -397,12 +413,10 @@ 10 ] ], - "name" : "022", - "id" : "022" + "id" : "022", + "name" : "022" }, { - "id" : "023", - "name" : "023", "data" : [ [ "Perl", @@ -416,11 +430,11 @@ "Blog", 12 ] - ] + ], + "name" : "023", + "id" : "023" }, { - "id" : "024", - "name" : "024", "data" : [ [ "Perl", @@ -434,9 +448,13 @@ "Blog", 11 ] - ] + ], + "name" : "024", + "id" : "024" }, { + "id" : "025", + "name" : "025", "data" : [ [ "Perl", @@ -450,13 +468,9 @@ "Blog", 12 ] - ], - "name" : "025", - "id" : "025" + ] }, { - "id" : "026", - "name" : "026", "data" : [ [ "Perl", @@ -470,11 +484,11 @@ "Blog", 10 ] - ] + ], + "id" : "026", + "name" : "026" }, { - "id" : "027", - "name" : "027", "data" : [ [ "Perl", @@ -488,11 +502,11 @@ "Blog", 9 ] - ] + ], + "id" : "027", + "name" : "027" }, { - "name" : "028", - "id" : "028", "data" : [ [ "Perl", @@ -506,9 +520,13 @@ "Blog", 9 ] - ] + ], + "id" : "028", + "name" : "028" }, { + "name" : "029", + "id" : "029", "data" : [ [ "Perl", @@ -522,9 +540,7 @@ "Blog", 12 ] - ], - "id" : "029", - "name" : "029" + ] }, { "id" : "030", @@ -545,8 +561,6 @@ ] }, { - "name" : "031", - "id" : "031", "data" : [ [ "Perl", @@ -560,9 +574,13 @@ "Blog", 9 ] - ] + ], + "id" : "031", + "name" : "031" }, { + "id" : "032", + "name" : "032", "data" : [ [ "Perl", @@ -576,11 +594,11 @@ "Blog", 10 ] - ], - "name" : "032", - "id" : "032" + ] }, { + "name" : "033", + "id" : "033", "data" : [ [ "Perl", @@ -594,9 +612,7 @@ "Blog", 10 ] - ], - "id" : "033", - "name" : "033" + ] }, { "data" : [ @@ -653,8 +669,6 @@ "id" : "036" }, { - "id" : "037", - "name" : "037", "data" : [ [ "Perl", @@ -668,9 +682,13 @@ "Blog", 9 ] - ] + ], + "name" : "037", + "id" : "037" }, { + "id" : "038", + "name" : "038", "data" : [ [ "Perl", @@ -684,11 +702,11 @@ "Blog", 12 ] - ], - "name" : "038", - "id" : "038" + ] }, { + "id" : "039", + "name" : "039", "data" : [ [ "Perl", @@ -702,13 +720,9 @@ "Blog", 12 ] - ], - "name" : "039", - "id" : "039" + ] |
