diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-08-28 12:25:51 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-08-28 12:25:51 +0100 |
| commit | 15ac63c0f3554fc95fbeb05fa7504a205ab76142 (patch) | |
| tree | 4926baeb6d4e95e9ceceb13734246154dd570965 | |
| parent | 8af7f38eab75da89d982ec77f31566b568a32b70 (diff) | |
| download | perlweeklychallenge-club-15ac63c0f3554fc95fbeb05fa7504a205ab76142.tar.gz perlweeklychallenge-club-15ac63c0f3554fc95fbeb05fa7504a205ab76142.tar.bz2 perlweeklychallenge-club-15ac63c0f3554fc95fbeb05fa7504a205ab76142.zip | |
- Added solutions by Pete Houston.
| -rw-r--r-- | challenge-075/pete-houston/perl/ch-1.pl | 41 | ||||
| -rw-r--r-- | challenge-075/pete-houston/perl/ch-2.pl | 61 | ||||
| -rw-r--r-- | stats/pwc-current.json | 181 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 66 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1076 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 404 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 112 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 92 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 56 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 110 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 28 |
14 files changed, 1235 insertions, 1118 deletions
diff --git a/challenge-075/pete-houston/perl/ch-1.pl b/challenge-075/pete-houston/perl/ch-1.pl new file mode 100644 index 0000000000..dc2b63e0dc --- /dev/null +++ b/challenge-075/pete-houston/perl/ch-1.pl @@ -0,0 +1,41 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: 7501.pl +# +# USAGE: ./7501.pl TARGET COIN [ ... ] +# +# DESCRIPTION: Report how many ways to make a total from a coin set +# +# REQUIREMENTS: Algorithm::Knapsack, Lingua::EN::Inflexion +# AUTHOR: Pete Houston (pete), cpan@openstrike.co.uk +# ORGANIZATION: Openstrike +# VERSION: 1.0 +# CREATED: 24/08/20 +#=============================================================================== + +use strict; +use warnings; +use Algorithm::Knapsack; +use Lingua::EN::Inflexion; + +# Construct a big enough set of coins +my $target = shift; +my @coins = map {($_) x ($target / $_)} @ARGV; + +# Process +my $sack = Algorithm::Knapsack->new ( + capacity => $target, + weights => \@coins, +); +$sack->compute; + +# De-duplicate +my %sets; +$sets {join (',', @coins[@$_]) . "\n"} = 1 for $sack->solutions; + +# Output +my $ways = keys %sets; +print inflect ("There <#d:$ways><V:is> <#nw:$ways> " . + "<N:way> of paying $target:\n\n"), + sort keys %sets; diff --git a/challenge-075/pete-houston/perl/ch-2.pl b/challenge-075/pete-houston/perl/ch-2.pl new file mode 100644 index 0000000000..4325b146f5 --- /dev/null +++ b/challenge-075/pete-houston/perl/ch-2.pl @@ -0,0 +1,61 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: 7502.pl +# +# USAGE: ./7502.pl N ... +# +# DESCRIPTION: Report the area of the biggest rectangle in the historgram. +# +# REQUIREMENTS: List::Util, List::MoreUtils +# NOTES: Each N must be a natural number. +# AUTHOR: Pete Houston (pete), cpan@openstrike.co.uk +# ORGANIZATION: Openstrike +# VERSION: 1.0 +# CREATED: 24/08/20 +#=============================================================================== + +use strict; +use warnings; +use List::Util 'max'; +use List::MoreUtils 'uniq'; + +histarea (@ARGV); + +sub histarea { + my @in = @_; + my $size = scalar @in; + my $area = $size; + my $axb = "1 x $size"; + my @steps = sort { $a <=> $b } uniq @in; + for my $height (@steps) { + my $contig = 0; + my $max = 0; + for my $col (@in) { + if ($col >= $height) { + $contig++; + $max = max $max, $contig; + } else { + $contig = 0; + } + } + my $rect = $max * $height; + if ($rect > $area) { + $area = max $area, $rect; + $axb = "$max x $height"; + } + } + print "Largest rectangle is $axb with area $area\n"; + &print_histo; +} + +sub print_histo { + my @y = @_; + my $yval = max (@y); + while ($yval) { + printf "\%6i\%s\n", + $yval, join '', map { $_ >= $yval ? ' #' : ' ' } @y; + $yval--; + } + print ' ' x 4, ' _' x (1 + @y), "\n @y\n"; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 4b6e493f5a..6690fd16d5 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,77 +1,80 @@ { - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "[Champions: 19] Last updated at 2020-08-28 11:18:16 GMT" - }, - "legend" : { - "enabled" : 0 - }, "plotOptions" : { "series" : { "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" + "format" : "{point.y}", + "enabled" : 1 }, "borderWidth" : 0 } }, + "subtitle" : { + "text" : "[Champions: 20] Last updated at 2020-08-28 11:25:02 GMT" + }, + "title" : { + "text" : "Perl Weekly Challenge - 075" + }, + "chart" : { + "type" : "column" + }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, + "xAxis" : { + "type" : "category" + }, "tooltip" : { - "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/>", - "followPointer" : 1 + "followPointer" : 1, + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" }, "drilldown" : { "series" : [ { - "name" : "Alex Mauney", - "id" : "Alex Mauney", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Alex Mauney", + "id" : "Alex Mauney" }, { - "id" : "Alexander Pankoff", - "name" : "Alexander Pankoff", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Alexander Pankoff", + "id" : "Alexander Pankoff" }, { + "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", 2 ] - ], - "id" : "Dave Jacoby", - "name" : "Dave Jacoby" + ] }, { + "name" : "E. Choroba", + "id" : "E. Choroba", "data" : [ [ "Perl", 2 ] - ], - "name" : "E. Choroba", - "id" : "E. Choroba" + ] }, { - "name" : "James Smith", "id" : "James Smith", + "name" : "James Smith", "data" : [ [ "Perl", @@ -86,8 +89,8 @@ 2 ] ], - "name" : "Jason Messer", - "id" : "Jason Messer" + "id" : "Jason Messer", + "name" : "Jason Messer" }, { "id" : "Jorg Sommrey", @@ -106,8 +109,8 @@ 1 ] ], - "name" : "Lubos Kolouch", - "id" : "Lubos Kolouch" + "id" : "Lubos Kolouch", + "name" : "Lubos Kolouch" }, { "id" : "Luca Ferrari", @@ -124,24 +127,24 @@ ] }, { + "id" : "Mark Anderson", + "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + ] }, { + "id" : "Markus Holzer", + "name" : "Markus Holzer", "data" : [ [ "Raku", 2 ] - ], - "name" : "Markus Holzer", - "id" : "Markus Holzer" + ] }, { "data" : [ @@ -158,8 +161,8 @@ 1 ] ], - "id" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" + "name" : "Mohammad S Anwar", + "id" : "Mohammad S Anwar" }, { "name" : "Myoungjin Jeon", @@ -182,10 +185,22 @@ 2 ] ], - "name" : "Nuno Vieira", - "id" : "Nuno Vieira" + "id" : "Nuno Vieira", + "name" : "Nuno Vieira" + }, + { + "id" : "Pete Houston", + "name" : "Pete Houston", + "data" : [ + [ + "Perl", + 2 + ] + ] }, { + "name" : "Roger Bell_West", + "id" : "Roger Bell_West", "data" : [ [ "Perl", @@ -199,9 +214,7 @@ "Blog", 1 ] - ], - "name" : "Roger Bell_West", - "id" : "Roger Bell_West" + ] }, { "id" : "Simon Green", @@ -218,14 +231,14 @@ ] }, { + "id" : "Simon Proctor", + "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ], - "name" : "Simon Proctor", - "id" : "Simon Proctor" + ] }, { "data" : [ @@ -234,12 +247,10 @@ 2 ] ], - "id" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" }, { - "id" : "Walt Mankowski", - "name" : "Walt Mankowski", "data" : [ [ "Perl", @@ -249,16 +260,14 @@ "Blog", 1 ] - ] + ], + "name" : "Walt Mankowski", + "id" : "Walt Mankowski" } ] }, - "chart" : { - "type" : "column" - }, "series" : [ { - "colorByPoint" : 1, "data" : [ { "drilldown" : "Alex Mauney", @@ -266,8 +275,8 @@ "y" : 2 }, { - "name" : "Alexander Pankoff", "y" : 2, + "name" : "Alexander Pankoff", "drilldown" : "Alexander Pankoff" }, { @@ -276,44 +285,44 @@ "y" : 2 }, { - "drilldown" : "E. Choroba", "y" : 2, + "drilldown" : "E. Choroba", "name" : "E. Choroba" }, { - "y" : 2, "name" : "James Smith", - "drilldown" : "James Smith" + "drilldown" : "James Smith", + "y" : 2 }, { - "y" : 2, + "drilldown" : "Jason Messer", "name" : "Jason Messer", - "drilldown" : "Jason Messer" + "y" : 2 }, { - "drilldown" : "Jorg Sommrey", "y" : 2, - "name" : "Jorg Sommrey" + "name" : "Jorg Sommrey", + "drilldown" : "Jorg Sommrey" }, { - "name" : "Lubos Kolouch", "y" : 1, + "name" : "Lubos Kolouch", "drilldown" : "Lubos Kolouch" }, { + "y" : 4, "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari", - "y" : 4 + "name" : "Luca Ferrari" }, { "name" : "Mark Anderson", - "y" : 2, - "drilldown" : "Mark Anderson" + "drilldown" : "Mark Anderson", + "y" : 2 }, { + "y" : 2, "drilldown" : "Markus Holzer", - "name" : "Markus Holzer", - "y" : 2 + "name" : "Markus Holzer" }, { "drilldown" : "Mohammad S Anwar", @@ -321,24 +330,29 @@ "y" : 5 }, { - "name" : "Myoungjin Jeon", "y" : 4, - "drilldown" : "Myoungjin Jeon" + "drilldown" : "Myoungjin Jeon", + "name" : "Myoungjin Jeon" }, { + "drilldown" : "Nuno Vieira", "name" : "Nuno Vieira", - "y" : 2, - "drilldown" : "Nuno Vieira" + "y" : 2 + }, + { + "name" : "Pete Houston", + "drilldown" : "Pete Houston", + "y" : 2 }, { - "y" : 5, + "drilldown" : "Roger Bell_West", "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" + "y" : 5 }, { - "drilldown" : "Simon Green", + "y" : 3, "name" : "Simon Green", - "y" : 3 + "drilldown" : "Simon Green" }, { "drilldown" : "Simon Proctor", @@ -346,9 +360,9 @@ "y" : 2 }, { - "y" : 2, "name" : "Ulrich Rieke", - "drilldown" : "Ulrich Rieke" + "drilldown" : "Ulrich Rieke", + "y" : 2 }, { "drilldown" : "Walt Mankowski", @@ -356,10 +370,11 @@ "y" : 3 } ], - "name" : "Perl Weekly Challenge - 075" + "name" : "Perl Weekly Challenge - 075", + "colorByPoint" : 1 } ], - "title" : { - "text" : "Perl Weekly Challenge - 075" + "legend" : { + "enabled" : 0 } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index df783ca6b0..0c7eb66d7f 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -2,26 +2,20 @@ "legend" : { "enabled" : "false" }, - "subtitle" : { - "text" : "Last updated at 2020-08-28 11:18:16 GMT" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, "series" : [ { + "dataLabels" : { + "y" : 10, + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "format" : "{point.y:.0f}", + "enabled" : "true", + "rotation" : -90, + "align" : "right", + "color" : "#FFFFFF" + }, "data" : [ [ "Blog", @@ -29,35 +23,41 @@ ], [ "Perl", - 3125 + 3127 ], [ "Raku", 2033 ] ], - "dataLabels" : { - "enabled" : "true", - "y" : 10, - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "align" : "right", - "rotation" : -90, - "color" : "#FFFFFF", - "format" : "{point.y:.0f}" - }, "name" : "Contributions" } ], + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + } + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, "chart" : { "type" : "column" }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "subtitle" : { + "text" : "Last updated at 2020-08-28 11:25:02 GMT" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 344d9efd3c..2e730719fc 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,32 +1,395 @@ { - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + "series" : [ + { + "data" : [ + { + "y" : 142, + "name" : "#001", + "drilldown" : "001" + }, + { + "y" : 109, + "name" : "#002", + "drilldown" : "002" + }, + { + "drilldown" : "003", + "name" : "#003", + "y" : 71 + }, + { + "y" : 91, + "name" : "#004", + "drilldown" : "004" + }, + { + "drilldown" : "005", + "name" : "#005", + "y" : 72 + }, + { + "drilldown" : "006", + "name" : "#006", + "y" : 52 + }, + { + "name" : "#007", + "drilldown" : "007", + "y" : 59 + }, + { + "name" : "#008", + "drilldown" : "008", + "y" : 72 + }, + { + "y" : 68, + "drilldown" : "009", + "name" : "#009" + }, + { + "y" : 60, + "drilldown" : "010", + "name" : "#010" + }, + { + "y" : 79, + "drilldown" : "011", + "name" : "#011" + }, + { + "drilldown" : "012", + "name" : "#012", + "y" : 83 + }, + { + "name" : "#013", + "drilldown" : "013", + "y" : 76 + }, + { + "y" : 96, + "name" : "#014", + "drilldown" : "014" + }, + { + "y" : 93, + "drilldown" : "015", + "name" : "#015" + }, + { + "name" : "#016", + "drilldown" : "016", + "y" : 66 + }, + { + "drilldown" : "017", + "name" : "#017", + "y" : 79 + }, + { + "y" : 76, + "name" : "#018", + "drilldown" : "018" + }, + { + "y" : 97, + "name" : "#019", + "drilldown" : "019" + }, + { + "name" : "#020", + "drilldown" : "020", + "y" : 95 + }, + { + "name" : "#021", + "drilldown" : "021", + "y" : 67 + }, + { + "drilldown" : "022", + "name" : "#022", + "y" : 63 + }, + { + "drilldown" : "023", + "name" : "#023", + "y" : 91 + }, + { + "name" : "#024", + "drilldown" : "024", + "y" : 70 + }, + { + "y" : 55, + "name" : "#025", + "drilldown" : "025" + }, + { + "y" : 70, + "name" : "#026", + "drilldown" : "026" + }, + { + "drilldown" : "027", + "name" : "#027", + "y" : 58 + }, + { + "y" : 78, + "drilldown" : "028", + "name" : "#028" + }, + { + "name" : "#029", + "drilldown" : "029", + "y" : 77 + }, + { + "name" : "#030", + "drilldown" : "030", + "y" : 115 + }, + { + "y" : 87, + "drilldown" : "031", + "name" : "#031" + }, + { + "y" : 92, + "name" : "#032", + "drilldown" : "032" + }, + { + "y" : 108, + "drilldown" : "033", + "name" : "#033" + }, + { + "name" : "#034", + "drilldown" : "034", + "y" : 62 + }, + { + "name" : "#035", + "drilldown" : "035", + "y" : 62 + }, + { + "name" : "#036", + "drilldown" : "036", + "y" : 66 + }, + { + "drilldown" : "037", + "name" : "#037", + "y" : 65 + }, + { + "name" : "#038", + "drilldown" : "038", + "y" : 65 + }, + { + "drilldown" : "039", + "name" : "#039", + "y" : 60 + }, + { + "y" : 71, + "drilldown" : "040", + "name" : "#040" + }, + { + "name" : "#041", + "drilldown" : "041", + "y" : 74 + }, + { + "y" : 88, + "name" : "#042", + "drilldown" : "042" + }, + { + "drilldown" : "043", + "name" : "#043", + "y" : 66 + }, + { + "drilldown" : "044", + "name" : "#044", + "y" : 82 + }, + { + "drilldown" : "045", + "name" : "#045", + "y" : 94 + }, + { + "y" : 85, + "drilldown" : "046", + "name" : "#046" + }, + { + "name" : "#047", + "drilldown" : "047", + "y" : 82 + }, + { + "y" : 106, + "name" : "#048", + "drilldown" : "048" + }, + { + "drilldown" : "049", + "name" : "#049", + "y" : 85 + }, + { + "drilldown" : "050", + "name" : "#050", + "y" : 96 + }, + { + "y" : 87, + "drilldown" : "051", + "name" : "#051" + }, + { + "drilldown" : "052", + "name" : "#052", + "y" : 89 + }, + { + "y" : 99, + "drilldown" : "053", + "name" : "#053" + }, + { + "drilldown" : "054", + "name" : "#054", + "y" : 101 + }, + { + "name" : "#055", + "drilldown" : "055", + "y" : 86 + }, + { + "name" : "#056", + "drilldown" : "056", + "y" : 93 + }, + { + "y" : 78, + "name" : "#057", + "drilldown" : "057" + }, + { + "y" : 67, + "name" : "#058", + "drilldown" : "058" + }, + { + "y" : 87, + "drilldown" : "059", + "name" : "#059" + }, + { + "name" : "#060", + "drilldown" : "060", + "y" : 83 + }, + { + "y" : 79, + "name" : "#061", + "drilldown" : "061" + }, + { + "y" : 54, + "name" : "#062", + "drilldown" : "062" + }, + { + "y" : 87, + "name" : "#063", + "drilldown" : "063" + }, + { + "y" : 76, + "name" : "#064", + "drilldown" : "064" + }, + { + "y" : 71, + "drilldown" : "065", + "name" : "#065" + }, + { + "name" : "#066", + "drilldown" : "066", + "y" : 82 + }, + { + "y" : 88, + "drilldown" : "067", + "name" : "#067" + }, + { + "y" : 73, + "drilldown" : "068", + "name" : "#068" + }, + { + "y" : 81, + "drilldown" : "069", + "name" : "#069" + }, + { + "drilldown" : "070", + "name" : "#070", + "y" : 91 + }, + { + "name" : "#071", + "drilldown" : "071", + "y" : 76 + }, + { + "drilldown" : "072", + "name" : "#072", + "y" : 109 + }, + { + "drilldown" : "073", + "name" : "#073", + "y" : 108 + }, + { + "y" : 110, + "drilldown" : "074", + "name" : "#074" + }, + { + "y" : 51, + "name" : "#075", + "drilldown" : "075" + } + ], + "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Languages" } - }, + ], "legend" : { "enabled" : "false" }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-08-28 11:18:16 GMT" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, "drilldown" : { "series" : [ { - "id" : "001", "name" : "001", + "id" : "001", "data" : [ [ "Perl", @@ -61,8 +424,8 @@ "name" : "002" }, { - "id" : "003", "name" : "003", + "id" : "003", "data" : [ [ "Perl", @@ -97,6 +460,8 @@ "id" : "004" }, { + "id" : "005", + "name" : "005", "data" : [ [ "Perl", @@ -110,9 +475,7 @@ "Blog", 12 ] - ], - "id" : "005", - "name" : "005" + ] }, { "data" : [ @@ -129,8 +492,8 @@ 7 ] ], - "id" : "006", - "name" : "006" + "name" : "006", + "id" : "006" }, { "name" : "007", @@ -151,8 +514,6 @@ ] }, { - "id" : "008", - "name" : "008", "data" : [ [ "Perl", @@ -166,11 +527,13 @@ "Blog", 12 ] - ] + ], + "name" : "008", + "id" : "008" }, { - "id" : "009", "name" : "009", + "id" : "009", "data" : [ [ "Perl", @@ -187,8 +550,8 @@ ] }, |
