aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-075/ulrich-rieke/perl/ch-1.pl66
-rw-r--r--challenge-075/ulrich-rieke/perl/ch-2.pl79
-rw-r--r--stats/pwc-current.json81
-rw-r--r--stats/pwc-language-breakdown-summary.json68
-rw-r--r--stats/pwc-language-breakdown.json552
-rw-r--r--stats/pwc-leaders.json390
-rw-r--r--stats/pwc-summary-1-30.json32
-rw-r--r--stats/pwc-summary-121-150.json44
-rw-r--r--stats/pwc-summary-151-180.json104
-rw-r--r--stats/pwc-summary-181-210.json54
-rw-r--r--stats/pwc-summary-31-60.json36
-rw-r--r--stats/pwc-summary-61-90.json30
-rw-r--r--stats/pwc-summary-91-120.json98
-rw-r--r--stats/pwc-summary.json48
14 files changed, 921 insertions, 761 deletions
diff --git a/challenge-075/ulrich-rieke/perl/ch-1.pl b/challenge-075/ulrich-rieke/perl/ch-1.pl
new file mode 100644
index 0000000000..03346776e4
--- /dev/null
+++ b/challenge-075/ulrich-rieke/perl/ch-1.pl
@@ -0,0 +1,66 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+use Algorithm::Combinatorics qw ( combinations_with_repetition ) ;
+
+sub enterArray {
+ my @array ;
+ print "Enter a number ( end to end ) :\n" ;
+ my $number = <STDIN> ;
+ chomp $number ;
+ while ( $number ne "end" ) {
+ if ( $number =~ /\d+/ ) {
+ push( @array, $number ) ;
+ }
+ print "Enter a number ( end to end ) :\n" ;
+ $number = <STDIN> ;
+ chomp $number ;
+ }
+ return @array ;
+}
+
+my $S = $ARGV[ 0 ] ;
+my @array = enterArray( ) ;
+my %coins ;
+for my $elem ( @array ) {
+ $coins{$elem}++ ;
+}
+my @sorted = sort { $a <=> $b } keys %coins ;
+my $maxelements ; #maximum number of a given coin that adds up to S
+my $minelements ; #minimum number of a given coin adding up to S
+my $solutions ;
+if ( $sorted[ 0 ] > $S ) {
+ $solutions = 0 ;
+ exit( 1 ) ;
+}
+my @elementsHowMany = map { $S % $_ == 0 ? ($S / $_) : (int( $S / $_ ) + 1)
+} @sorted ;
+$maxelements = $elementsHowMany[ 0 ] ;
+if ( $elementsHowMany[ -1 ] != 0 ) {
+ $minelements = $elementsHowMany[ -1 ] ;
+}
+else {
+ my $el ;
+ do {
+ $el = pop @elementsHowMany ;
+ } until ( $el != 0 ) ;
+ $minelements = $el ;
+}
+for my $len ( $minelements .. $maxelements ) {
+ my $iter = combinations_with_repetition (\@sorted , $len ) ;
+ my $p ;
+ while ( $p = $iter->next ) {
+ my $sum = 0 ;
+ for my $n ( @{$p} ) {
+ $sum += $n ;
+ }
+ if ( $sum == $S ) {
+ $solutions++ ;
+ print '[' ;
+ map { print "$_ " } @{$p} ;
+ say ']' ;
+ }
+ }
+}
+say $solutions ;
diff --git a/challenge-075/ulrich-rieke/perl/ch-2.pl b/challenge-075/ulrich-rieke/perl/ch-2.pl
new file mode 100644
index 0000000000..db03b597dd
--- /dev/null
+++ b/challenge-075/ulrich-rieke/perl/ch-2.pl
@@ -0,0 +1,79 @@
+#!/usr/bin/perl ;
+use strict ;
+use warnings ;
+use feature 'say' ;
+
+sub findMinMax {
+ my $array = shift ;
+ my @sorted = sort { $a <=> $b } @{$array} ;
+ return ( $sorted[ 0 ] , $sorted[ -1 ] ) ;
+}
+
+sub enterArray {
+ my @array ;
+ print "Enter a number ( end to end ) :\n" ;
+ my $number = <STDIN> ;
+ chomp $number ;
+ while ( $number ne "end" ) {
+ if ( $number =~ /\d+/ ) {
+ push( @array, $number ) ;
+ }
+ print "Enter a number ( end to end ) :\n" ;
+ $number = <STDIN> ;
+ chomp $number ;
+ }
+ return @array ;
+}
+
+sub printRectangle {
+ my $array = shift ;
+ my $maximum = (findMinMax( $array ))[ 1 ] ;
+ my $currentNumber = $maximum ;
+ my $len = scalar @{$array} ;
+ say " " ;
+ while ( $currentNumber > 0 ) {
+ print $currentNumber ;
+ my $line ;
+ for my $i ( 0 .. $len - 1 ) {
+ if ( $array->[ $i ] >= $currentNumber ) {
+ $line .= " #" ;
+ }
+ else {
+ $line .= " " ;
+ }
+ }
+ print "$line\n" ;
+ $currentNumber-- ;
+ }
+ print "- " x $len ;
+ print "-\n" ;
+ print " " ;
+ print join( ' ' , @{$array} ) ;
+ say " " ;
+}
+
+#the task is equivalent to forming groups of neighboring numbers
+#(at least 2 , at most the entire array). The minimum of this
+#group represents the height of the rectangle, the number of
+#neighbouring numbers its width. We seek the maximum product of
+#all possible groups in the array
+my @array = enterArray( ) ;
+printRectangle( \@array ) ;
+my $len = scalar @array ;
+my @areas ;
+my $minimum ;
+my @partialArray ;
+my $area ;
+for my $width ( 2 .. $len - 1 ) {
+ for my $startindex ( 0 .. $len - $width ) {
+ @partialArray = @array[ $startindex .. $startindex + $width - 1] ;
+ my $minimum = (findMinMax( \@partialArray))[0] ;
+ $area = $width * $minimum ;
+ push( @areas , $area ) ;
+ }
+}
+$minimum = ( findMinMax(\@array) )[ 0 ] ;
+$area = $minimum * $len ;
+push( @areas , $area ) ;
+my $maximum = (findMinMax(\@areas))[ 1 ] ;
+say $maximum ;
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index f1f80b3e36..aecf7c1751 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -15,8 +15,8 @@
"drilldown" : "Mark Anderson"
},
{
- "y" : 2,
"name" : "Markus Holzer",
+ "y" : 2,
"drilldown" : "Markus Holzer"
},
{
@@ -26,47 +26,49 @@
},
{
"name" : "Roger Bell_West",
- "y" : 4,
- "drilldown" : "Roger Bell_West"
+ "drilldown" : "Roger Bell_West",
+ "y" : 4
},
{
"drilldown" : "Simon Green",
"y" : 3,
"name" : "Simon Green"
+ },
+ {
+ "name" : "Ulrich Rieke",
+ "drilldown" : "Ulrich Rieke",
+ "y" : 2
}
]
}
],
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "subtitle" : {
- "text" : "[Champions: 6] Last updated at 2020-08-25 04:49:34 GMT"
+ "chart" : {
+ "type" : "column"
},
"xAxis" : {
"type" : "category"
},
- "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/>"
+ "legend" : {
+ "enabled" : 0
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
},
"plotOptions" : {
"series" : {
- "borderWidth" : 0,
"dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- }
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
}
},
- "chart" : {
- "type" : "column"
- },
- "legend" : {
- "enabled" : 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/>"
},
"title" : {
"text" : "Perl Weekly Challenge - 075"
@@ -74,6 +76,7 @@
"drilldown" : {
"series" : [
{
+ "id" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -84,30 +87,30 @@
2
]
],
- "name" : "Luca Ferrari",
- "id" : "Luca Ferrari"
+ "name" : "Luca Ferrari"
},
{
+ "name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
],
- "name" : "Mark Anderson",
"id" : "Mark Anderson"
},
{
"id" : "Markus Holzer",
- "name" : "Markus Holzer",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "name" : "Markus Holzer"
},
{
+ "id" : "Mohammad S Anwar",
"data" : [
[
"Perl",
@@ -118,10 +121,10 @@
2
]
],
- "id" : "Mohammad S Anwar",
"name" : "Mohammad S Anwar"
},
{
+ "name" : "Roger Bell_West",
"data" : [
[
"Perl",
@@ -132,12 +135,9 @@
2
]
],
- "id" : "Roger Bell_West",
- "name" : "Roger Bell_West"
+ "id" : "Roger Bell_West"
},
{
- "id" : "Simon Green",
- "name" : "Simon Green",
"data" : [
[
"Perl",
@@ -147,8 +147,23 @@
"Blog",
1
]
+ ],
+ "name" : "Simon Green",
+ "id" : "Simon Green"
+ },
+ {
+ "id" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
]
}
]
+ },
+ "subtitle" : {
+ "text" : "[Champions: 7] Last updated at 2020-08-25 04:54:29 GMT"
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index e74c6d8ea0..afd0c68b61 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -5,21 +5,23 @@
"text" : null
}
},
+ "legend" : {
+ "enabled" : "false"
+ },
+ "subtitle" : {
+ "text" : "Last updated at 2020-08-25 04:54:29 GMT"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ },
+ "chart" : {
+ "type" : "column"
+ },
"series" : [
{
- "name" : "Contributions",
- "dataLabels" : {
- "format" : "{point.y:.0f}",
- "color" : "#FFFFFF",
- "y" : 10,
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "align" : "right",
- "rotation" : -90,
- "enabled" : "true"
- },
"data" : [
[
"Blog",
@@ -27,37 +29,35 @@
],
[
"Perl",
- 3104
+ 3106
],
[
"Raku",
2027
]
- ]
+ ],
+ "dataLabels" : {
+ "enabled" : "true",
+ "color" : "#FFFFFF",
+ "rotation" : -90,
+ "y" : 10,
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ },
+ "format" : "{point.y:.0f}",
+ "align" : "right"
+ },
+ "name" : "Contributions"
}
],
- "subtitle" : {
- "text" : "Last updated at 2020-08-25 04:49:34 GMT"
- },
"xAxis" : {
- "type" : "category",
"labels" : {
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
}
- }
- },
- "chart" : {
- "type" : "column"
- },
- "legend" : {
- "enabled" : "false"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ },
+ "type" : "category"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 3ecd185fc8..875b246518 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,27 +1,16 @@
{
- "legend" : {
- "enabled" : "false"
- },
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
- },
- "chart" : {
- "type" : "column"
- },
"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>",
- "followPointer" : "true"
+ "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Language"
},
"drilldown" : {
"series" : [
{
+ "name" : "001",
"data" : [
[
"Perl",
@@ -36,12 +25,10 @@
11
]
],
- "id" : "001",
- "name" : "001"
+ "id" : "001"
},
{
"name" : "002",
- "id" : "002",
"data" : [
[
"Perl",
@@ -55,11 +42,10 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "002"
},
{
- "name" : "003",
- "id" : "003",
"data" : [
[
"Perl",
@@ -73,9 +59,13 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "003",
+ "id" : "003"
},
{
+ "id" : "004",
+ "name" : "004",
"data" : [
[
"Perl",
@@ -89,9 +79,7 @@
"Blog",
10
]
- ],
- "id" : "004",
- "name" : "004"
+ ]
},
{
"id" : "005",
@@ -113,7 +101,6 @@
},
{
"name" : "006",
- "id" : "006",
"data" : [
[
"Perl",
@@ -127,9 +114,12 @@
"Blog",
7
]
- ]
+ ],
+ "id" : "006"
},
{
+ "id" : "007",
+ "name" : "007",
"data" : [
[
"Perl",
@@ -143,11 +133,11 @@
"Blog",
10
]
- ],
- "id" : "007",
- "name" : "007"
+ ]
},
{
+ "id" : "008",
+ "name" : "008",
"data" : [
[
"Perl",
@@ -161,11 +151,10 @@
"Blog",
12
]
- ],
- "name" : "008",
- "id" : "008"
+ ]
},
{
+ "name" : "009",
"data" : [
[
"Perl",
@@ -180,12 +169,11 @@
13
]
],
- "id" : "009",
- "name" : "009"
+ "id" : "009"
},
{
- "name" : "010",
"id" : "010",
+ "name" : "010",
"data" : [
[
"Perl",
@@ -220,6 +208,7 @@
"id" : "011"
},
{
+ "name" : "012",
"data" : [
[
"Perl",
@@ -234,12 +223,11 @@
11
]
],
- "id" : "012",
- "name" : "012"
+ "id" : "012"
},
{
- "name" : "013",
"id" : "013",
+ "name" : "013",
"data" : [
[
"Perl",
@@ -256,6 +244,7 @@
]
},
{
+ "id" : "014",
"data" : [
[
"Perl",
@@ -270,8 +259,7 @@
15
]
],
- "name" : "014",
- "id" : "014"
+ "name" : "014"
},
{
"data" : [
@@ -292,6 +280,7 @@
"id" : "015"
},
{
+ "name" : "016",
"data" : [
[
"Perl",
@@ -306,10 +295,10 @@
12
]
],
- "name" : "016",
"id" : "016"
},
{
+ "name" : "017",
"data" : [
[
"Perl",
@@ -324,11 +313,9 @@
12
]
],
- "id" : "017",
- "name" : "017"
+ "id" : "017"
},
{
- "name" : "018",
"id" : "018",
"data" : [
[
@@ -343,10 +330,10 @@
"Blog",
14
]
- ]
+ ],
+ "name" : "018"
},
{
- "id" : "019",
"name" : "019",
"data" : [
[
@@ -361,7 +348,8 @@
"Blog",
13
]
- ]
+ ],
+ "id" : "019"
},
{
"id" : "020",
@@ -382,6 +370,7 @@
]
},
{
+ "id" : "021",
"data" : [
[
"Perl",
@@ -396,11 +385,9 @@
10
]
],
- "id" : "021",
"name" : "021"
},
{
- "name" : "022",
"id" : "022",
"data" : [
[
@@ -415,9 +402,11 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "022"
},
{
+ "id" : "023",
"data" : [
[
"Perl",
@@ -432,10 +421,10 @@
12
]
],
- "name" : "023",
- "id" : "023"
+ "name" : "023"
},
{
+ "name" : "024",
"data" : [
[
"Perl",
@@ -450,10 +439,10 @@
11
]
],
- "name" : "024",
"id" : "024"
},
{
+ "name" : "025",
"data" : [
[
"Perl",
@@ -468,10 +457,10 @@
12
]
],
- "name" : "025",
"id" : "025"
},
{
+ "name" : "026",
"data" : [
[
"Perl",
@@ -486,12 +475,9 @@
10
]
],
- "id" : "026",
- "name" : "026"
+ "id" : "026"
},
{
- "id" : "027",
- "name" : "027",
"data" : [
[
"Perl",
@@ -505,9 +491,13 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "027",
+ "id" : "027"
},
{
+ "id" : "028",
+ "name" : "028",
"data" : [
[
"Perl",
@@ -521,9 +511,7 @@
"Blog",
9
]
- ],
- "id" : "028",
- "name" : "028"
+ ]
},
{
"data" : [
@@ -540,8 +528,8 @@
12
]
],
- "id" : "029",
- "name" : "029"
+ "name" : "029",
+ "id" : "029"
},
{
"data" : [
@@ -558,10 +546,11 @@
10
]
],
- "id" : "030",
- "name" : "030"
+ "name" : "030",
+ "id" : "030"
},
{
+ "name" : "031",
"data" : [
[
"Perl",
@@ -576,12 +565,10 @@
9
]
],
- "id" : "031",
- "name" : "031"
+ "id" : "031"
},
{
"id" : "032",
- "name" : "032",
"data" : [
[
"Perl",
@@ -595,9 +582,12 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "032"
},
{
+ "id" : "033",
+ "name" : "033",
"data" : [
[
"Perl",
@@ -611,11 +601,10 @@
"Blog",
10
]
- ],
- "name" : "033",
- "id" : "033"
+ ]
},
{
+ "name" : "034",
"data" : [
[
"Perl",
@@ -630,10 +619,10 @@
11
]
],
- "name" : "034",
"id" : "034"
},
{
+ "id" : "035",
"data" : [
[
"Perl",
@@ -648,12 +637,11 @@
9
]
],
- "name" : "035",
- "id" : "035"
+ "name" : "035"
},
{
- "name" : "036",
"id" : "036",
+ "name" : "036",
"data" : [
[
"Perl",
@@ -670,7 +658,6 @@
]
},
{
- "name" : "037",
"id" : "037",
"data" : [
[
@@ -685,11 +672,11 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "037"
},
{
"id" : "038",
- "name" : "038",
"data" : [
[
"Perl",
@@ -703,9 +690,11 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "038"
},
{
+ "id" : "039",
"data" : [
[
"Perl",
@@ -720,10 +709,10 @@
12
]
],
- "id" : "039",
"name" : "039"
},
{
+ "name" : "040",
"data" : [
[
"Perl",
@@ -738,11 +727,9 @@
10
]
],
- "name" : "040",
"id" : "040"
},
{
- "name" : "041",
"id" : "041",
"data" : [
[
@@ -757,10 +744,10 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "041"
},
{
- "id" : "042",
"name" : "042",
"data" : [
[
@@ -775,11 +762,12 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "042"
},
{
- "name" : "043",
"id" : "043",
+ "name" : "043",
"data" : [
[
"Perl",
@@ -797,7 +785,6 @@
},
{
"name" : "044",
- "id" : "044",
"data" : [
[
"Perl",
@@ -811,7 +798,8 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "044"
},
{
"data" : [
@@ -828,8 +816,8 @@
11
]
],
- "id" : "045",
- "name" : "045"
+ "name" : "045",
+ "id" : "045"
},
{
"id" : "046",
@@ -851,7 +839,6 @@
},
{
"name" : "047",
- "id" : "047",
"data" : [
[
"Perl",
@@ -865,11 +852,10 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "047"
},
{
- "name" : "048",
- "id" : "048",
"data" : [
[
"Perl",
@@ -883,9 +869,12 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "048",
+ "id" : "048"
},
{
+ "id" : "049",
"data" : [
[
"Perl",
@@ -900,7 +889,6 @@
12
]
],
- "id" : "049",
"name" : "049"
},
{
@@ -922,6 +910,8 @@
"id" : "050"
},
{
+ "id" : "051",
+ "name" : "051",
"data" : [
[
"Perl",
@@ -935,13 +925,11 @@
"Blog",
11
]
- ],
- "name" : "051",
- "id" : "051"
+ ]
},
{
- "name" : "052",
"id" : "052",
+ "name" : "052",
"data" : [
[
"Perl",
@@ -958,6 +946,7 @@
]
},
{
+ "id" : "053",
"data" : [
[
"Perl",
@@ -972,8 +961,7 @@
15
]
],
- "name" : "053",
- "id" : "053"
+ "name" : "053"
},
{
"data" : [
@@ -994,6 +982,8 @@
"id" : "054"
},
{
+ "id" : "055",
+ "name" : "055",
"data" : [
[
"Perl",
@@ -1007,13 +997,10 @@
"Blog",
14
]
- ],
- "name" : "055",
- "id" : "055"
+ ]
},
{
"name" : "056",
- "id" : "056",
"data" : [
[
"Perl",
@@ -1027,9 +1014,12 @@
"Blog",
16
]
- ]
+ ],
+ "id" : "056"
},
{
+ "id" : "057",
+ "name" : "057",
"data" : [
[
"Perl",
@@ -1043,9 +1033,7 @@
"Blog",
15
]
- ],
- "id" : "057",
- "name" : "057"
+ ]
},
{
"data" : [
@@ -1066,6 +1054,7 @@
"id" : "058"
},
{
+ "name" : "059",
"data" : [
[
"Perl",
@@ -1080,7 +1069,6 @@
16
]
],
- "name" : "059",
"id" : "059"
},
{
@@ -1098,11 +1086,10 @@
16
]
],
- "id" : "060",
- "name" : "060"
+ "name" : "060",
+ "id" : "060"
},
{
- "id" : "061",
"name" : "061",
"data" : [
[
@@ -1117,11 +1104,10 @@
"Blog",
14
]
- ]
+ ],
+ "id" : "061"
},
{
- "name" : "062",
- "id" : "062",
"data" : [
[
"Perl",
@@ -1135,11 +1121,11 @@
"Blog",
11
]
- ]
+ ],