aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-067/mohammad-anwar/perl/ch-1.pl49
-rw-r--r--challenge-067/mohammad-anwar/perl/ch-1a.pl68
-rw-r--r--stats/pwc-current.json141
-rw-r--r--stats/pwc-language-breakdown-summary.json58
-rw-r--r--stats/pwc-language-breakdown.json468
-rw-r--r--stats/pwc-leaders.json730
-rw-r--r--stats/pwc-summary-1-30.json96
-rw-r--r--stats/pwc-summary-121-150.json32
-rw-r--r--stats/pwc-summary-151-180.json34
-rw-r--r--stats/pwc-summary-31-60.json28
-rw-r--r--stats/pwc-summary-61-90.json98
-rw-r--r--stats/pwc-summary-91-120.json108
-rw-r--r--stats/pwc-summary.json56
13 files changed, 1049 insertions, 917 deletions
diff --git a/challenge-067/mohammad-anwar/perl/ch-1.pl b/challenge-067/mohammad-anwar/perl/ch-1.pl
new file mode 100644
index 0000000000..5ef7fc8615
--- /dev/null
+++ b/challenge-067/mohammad-anwar/perl/ch-1.pl
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use List::Util qw(uniq);
+
+my $m = $ARGV[0];
+my $n = $ARGV[1];
+
+print join "\n", comb($m, $n), '';
+
+sub comb {
+ my ($m, $n) = @_;
+
+ die "ERROR: Missing 'm'.\n"
+ unless defined $m;
+ die "ERROR: Missing 'n'.\n"
+ unless defined $n;
+ die "ERROR: Invalid m=$m (m>0).\n"
+ unless ($m > 0);
+ die "ERROR: Invalid n=$n (n>0).\n"
+ unless ($n > 0);
+ die "ERROR: Invalid n=$n (n<=m).\n"
+ unless ($n <= $m);
+
+ # prepare data set
+ my @data = ();
+ push @data, [1..$m] foreach (1..$n);
+
+ # generate all possible combinations
+ my @combinations = ('');
+ foreach my $members (@data) {
+ @combinations = map {
+ my $member = $_;
+ map $member.$_, @$members
+ } @combinations;
+ }
+
+ # filter combinations
+ my %filter;
+ foreach my $member (@combinations) {
+ my @uniq = uniq split //, $member;
+ next unless (@uniq == $n);
+ $filter{ join ', ', sort @uniq } = 1;
+ }
+
+ # return sorted result
+ return (sort keys %filter);
+}
diff --git a/challenge-067/mohammad-anwar/perl/ch-1a.pl b/challenge-067/mohammad-anwar/perl/ch-1a.pl
new file mode 100644
index 0000000000..8e102d26ec
--- /dev/null
+++ b/challenge-067/mohammad-anwar/perl/ch-1a.pl
@@ -0,0 +1,68 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Deep;
+use List::Util qw(uniq);
+
+is_deeply( [ comb(5, 2) ],
+ [ '1, 2', '1, 3', '1, 4', '1, 5',
+ '2, 3', '2, 4', '2, 5',
+ '3, 4', '3, 5',
+ '4, 5' ],
+ 'testing m=5; n=2' );
+is_deeply( [ comb(5, 3) ],
+ [ '1, 2, 3', '1, 2, 4', '1, 2, 5', '1, 3, 4', '1, 3, 5', '1, 4, 5',
+ '2, 3, 4', '2, 3, 5', '2, 4, 5',
+ '3, 4, 5' ],
+ 'testing m=5; n=3' );
+is_deeply( [ comb(5, 4) ],
+ [ '1, 2, 3, 4', '1, 2, 3, 5', '1, 2, 4, 5', '1, 3, 4, 5',
+ '2, 3, 4, 5' ],
+ 'testing m=5; n=4' );
+is_deeply( [ comb(5, 5) ],
+ [ '1, 2, 3, 4, 5' ],
+ 'testing m=5; n=5' );
+
+done_testing;
+
+sub comb {
+ my ($m, $n) = @_;
+
+ die "ERROR: Missing 'm'.\n"
+ unless defined $m;
+ die "ERROR: Missing 'n'.\n"
+ unless defined $n;
+ die "ERROR: Invalid m=$m (m>0).\n"
+ unless ($m > 0);
+ die "ERROR: Invalid n=$n (n>0).\n"
+ unless ($n > 0);
+ die "ERROR: Invalid n=$n (n<=m).\n"
+ unless ($n <= $m);
+
+ # prepare data set
+ my @data = ();
+ push @data, [1..$m] foreach (1..$n);
+
+ # generate all possible combinations
+ my @combinations = ('');
+ foreach my $members (@data) {
+ @combinations = map {
+ my $member = $_;
+ map $member.$_, @$members
+ } @combinations;
+ }
+
+ # filter combinations
+ my %filter;
+ foreach my $member (@combinations) {
+ my @uniq = uniq split //, $member;
+ next unless (@uniq == $n);
+ $filter{ join ', ', sort @uniq } = 1;
+ }
+
+ # return sorted result
+ return (sort keys %filter);
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 97a12f4202..bf1d4bc77d 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,31 +1,30 @@
{
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- },
- "borderWidth" : 0
- }
+ "chart" : {
+ "type" : "column"
},
- "legend" : {
- "enabled" : 0
+ "xAxis" : {
+ "type" : "category"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
},
"drilldown" : {
"series" : [
{
- "name" : "Andrew Shitov",
"id" : "Andrew Shitov",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "name" : "Andrew Shitov"
},
{
- "name" : "Dave Jacoby",
"id" : "Dave Jacoby",
+ "name" : "Dave Jacoby",
"data" : [
[
"Perl",
@@ -34,6 +33,7 @@
]
},
{
+ "name" : "Donald Hunter",
"data" : [
[
"Raku",
@@ -44,20 +44,20 @@
1
]
],
- "id" : "Donald Hunter",
- "name" : "Donald Hunter"
+ "id" : "Donald Hunter"
},
{
- "id" : "Leo Manfredi",
"data" : [
[
"Perl",
1
]
],
- "name" : "Leo Manfredi"
+ "name" : "Leo Manfredi",
+ "id" : "Leo Manfredi"
},
{
+ "name" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -68,58 +68,67 @@
2
]
],
- "id" : "Luca Ferrari",
- "name" : "Luca Ferrari"
+ "id" : "Luca Ferrari"
},
{
+ "id" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
],
- "id" : "Mark Anderson",
"name" : "Mark Anderson"
},
{
- "name" : "Niels van Dijke",
+ "id" : "Mohammad S Anwar",
+ "name" : "Mohammad S Anwar",
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ]
+ },
+ {
+ "id" : "Niels van Dijke",
"data" : [
[
"Perl",
2
]
],
- "id" : "Niels van Dijke"
+ "name" : "Niels van Dijke"
},
{
+ "id" : "Roger Bell_West",
"name" : "Roger Bell_West",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Roger Bell_West"
+ ]
},
{
- "id" : "Simon Miner",
+ "name" : "Simon Miner",
"data" : [
[
"Perl",
2
]
],
- "name" : "Simon Miner"
+ "id" : "Simon Miner"
},
{
"name" : "Simon Proctor",
- "id" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "id" : "Simon Proctor"
},
{
"id" : "Ulrich Rieke",
@@ -137,34 +146,32 @@
},
{
"id" : "Wanderdoc",
+ "name" : "Wanderdoc",
"data" : [
[
"Perl",
2
]
- ],
- "name" : "Wanderdoc"
+ ]
}
]
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
+ "legend" : {
+ "enabled" : 0
+ },
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "enabled" : 1,
+ "format" : "{point.y}"
+ },
+ "borderWidth" : 0
}
},
"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
- },
- "xAxis" : {
- "type" : "category"
- },
- "chart" : {
- "type" : "column"
- },
- "subtitle" : {
- "text" : "[Champions: 12] Last updated at 2020-06-30 10:17:33 GMT"
+ "followPointer" : 1,
+ "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>"
},
"title" : {
"text" : "Perl Weekly Challenge - 067"
@@ -173,19 +180,19 @@
{
"data" : [
{
- "drilldown" : "Andrew Shitov",
"name" : "Andrew Shitov",
+ "drilldown" : "Andrew Shitov",
"y" : 2
},
{
- "name" : "Dave Jacoby",
"y" : 2,
- "drilldown" : "Dave Jacoby"
+ "drilldown" : "Dave Jacoby",
+ "name" : "Dave Jacoby"
},
{
"y" : 3,
- "name" : "Donald Hunter",
- "drilldown" : "Donald Hunter"
+ "drilldown" : "Donald Hunter",
+ "name" : "Donald Hunter"
},
{
"drilldown" : "Leo Manfredi",
@@ -193,14 +200,19 @@
"name" : "Leo Manfredi"
},
{
- "drilldown" : "Luca Ferrari",
"y" : 4,
+ "drilldown" : "Luca Ferrari",
"name" : "Luca Ferrari"
},
{
+ "name" : "Mark Anderson",
"drilldown" : "Mark Anderson",
- "y" : 2,
- "name" : "Mark Anderson"
+ "y" : 2
+ },
+ {
+ "name" : "Mohammad S Anwar",
+ "drilldown" : "Mohammad S Anwar",
+ "y" : 1
},
{
"drilldown" : "Niels van Dijke",
@@ -208,24 +220,24 @@
"name" : "Niels van Dijke"
},
{
+ "name" : "Roger Bell_West",
"drilldown" : "Roger Bell_West",
- "y" : 2,
- "name" : "Roger Bell_West"
+ "y" : 2
},
{
- "drilldown" : "Simon Miner",
+ "name" : "Simon Miner",
"y" : 2,
- "name" : "Simon Miner"
+ "drilldown" : "Simon Miner"
},
{
+ "name" : "Simon Proctor",
"drilldown" : "Simon Proctor",
- "y" : 2,
- "name" : "Simon Proctor"
+ "y" : 2
},
{
- "drilldown" : "Ulrich Rieke",
+ "name" : "Ulrich Rieke",
"y" : 3,
- "name" : "Ulrich Rieke"
+ "drilldown" : "Ulrich Rieke"
},
{
"name" : "Wanderdoc",
@@ -233,8 +245,11 @@
"drilldown" : "Wanderdoc"
}
],
- "colorByPoint" : 1,
- "name" : "Perl Weekly Challenge - 067"
+ "name" : "Perl Weekly Challenge - 067",
+ "colorByPoint" : 1
}
- ]
+ ],
+ "subtitle" : {
+ "text" : "[Champions: 13] Last updated at 2020-07-01 13:42:22 GMT"
+ }
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index e840af8702..6a4877f9e7 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,9 +1,21 @@
{
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ "yAxis" : {
+ "title" : {
+ "text" : null
+ },
+ "min" : 0
},
- "subtitle" : {
- "text" : "Last updated at 2020-06-30 10:17:33 GMT"
+ "chart" : {
+ "type" : "column"
+ },
+ "xAxis" : {
+ "labels" : {
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ }
+ },
+ "type" : "category"
},
"series" : [
{
@@ -14,7 +26,7 @@
],
[
"Perl",
- 2763
+ 2764
],
[
"Raku",
@@ -22,42 +34,30 @@
]
],
"dataLabels" : {
- "format" : "{point.y:.0f}",
"enabled" : "true",
- "rotation" : -90,
- "y" : 10,
- "color" : "#FFFFFF",
"align" : "right",
+ "color" : "#FFFFFF",
+ "rotation" : -90,
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "format" : "{point.y:.0f}",
+ "y" : 10
},
"name" : "Contributions"
}
],
- "chart" : {
- "type" : "column"
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ },
+ "subtitle" : {
+ "text" : "Last updated at 2020-07-01 13:42:22 GMT"
},
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
},
- "xAxis" : {
- "type" : "category",
- "labels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- }
- }
- },
"legend" : {
"enabled" : "false"
- },
- "yAxis" : {
- "title" : {
- "text" : null
- },
- "min" : 0
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 5877afe77d..05f9da2fa9 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,7 +1,15 @@
{
+ "xAxis" : {
+ "type" : "category"
+ },
+ "chart" : {
+ "type" : "column"
+ },
"drilldown" : {
"series" : [
{
+ "id" : "001",
+ "name" : "001",
"data" : [
[
"Perl",
@@ -15,11 +23,10 @@
"Blog",
11
]
- ],
- "id" : "001",
- "name" : "001"
+ ]
},
{
+ "id" : "002",
"data" : [
[
"Perl",
@@ -34,7 +41,6 @@
10
]
],
- "id" : "002",
"name" : "002"
},
{
@@ -57,7 +63,6 @@
},
{
"name" : "004",
- "id" : "004",
"data" : [
[
"Perl",
@@ -71,7 +76,8 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "004"
},
{
"data" : [
@@ -88,11 +94,10 @@
12
]
],
- "id" : "005",
- "name" : "005"
+ "name" : "005",
+ "id" : "005"
},
{
- "name" : "006",
"id" : "006",
"data" : [
[
@@ -107,10 +112,11 @@
"Blog",
7
]
- ]
+ ],
+ "name" : "006"
},
{
- "name" : "007",
+ "id" : "007",
"data" : [
[
"Perl",
@@ -125,10 +131,11 @@
10
]
],
- "id" : "007"
+ "name" : "007"
},
{
"id" : "008",
+ "name" : "008",
"data" : [
[
"Perl",
@@ -142,12 +149,10 @@
"Blog",
12
]
- ],
- "name" : "008"
+ ]
},
{
"name" : "009",
- "id" : "009",
"data" : [
[
"Perl",
@@ -161,10 +166,10 @@
"Blog",
13
]
- ]
+ ],
+ "id" : "009"
},
{
- "name" : "010",
"data" : [
[
"Perl",
@@ -179,11 +184,10 @@
11
]
],
+ "name" : "010",
"id" : "010"
},
{
- "name" : "011",
- "id" : "011",
"data" : [
[
"Perl",
@@ -197,9 +201,12 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "011",
+ "id" : "011"
},
{
+ "name" : "012",
"data" : [
[
"Perl",
@@ -214,10 +221,10 @@
11
]
],
- "id" : "012",
- "name" : "012"
+ "id" : "012"
},
{
+ "id" : "013",
"data" : [
[
"Perl",
@@ -232,12 +239,9 @@
13
]
],
- "id" : "013",
"name" : "013"
},
{
- "name" : "014",
- "id" : "014",
"data" : [
[
"Perl",
@@ -251,7 +255,9 @@
"Blog",
15
]
- ]
+ ],
+ "name" : "014",
+ "id" : "014"
},
{
"name" : "015",
@@ -272,8 +278,8 @@
"id" : "015"
},
{
- "name" : "016",
"id" : "016",
+ "name" : "016",
"data" : [
[
"Perl",
@@ -290,6 +296,7 @@
]
},
{
+ "id" : "017",
"data" : [
[
"Perl",
@@ -304,12 +311,9 @@
12
]
],
- "id" : "017",
"name" : "017"
},
{
- "name" : "018",
- "id" : "018",
"data" : [
[
"Perl",
@@ -323,7 +327,9 @@
"Blog",
14
]
- ]
+ ],
+ "name" : "018",
+ "id" : "018"
},
{
"name" : "019",
@@ -344,7 +350,6 @@
"id" : "019"
},
{
- "id" : "020",
"data" : [
[
"Perl",
@@ -359,9 +364,11 @@
13
]
],
- "name" : "020"
+ "name" : "020",
+ "id" : "020"
},
{
+ "id" : "021",
"name" : "021",
"data" : [
[
@@ -376,10 +383,11 @@
"Blog",
10
]
- ],
- "id" : "021"
+ ]
},
{
+ "id" : "022",
+ "name" : "022",
"data" : [
[
"Perl",
@@ -393,9 +401,7 @@
"Blog",
10
]
- ],
- "id" : "022",
- "name" : "022"
+ ]
},
{
"name" : "023",
@@ -435,7 +441,6 @@
},
{
"name" : "025",
- "id" : "025",
"data" : [
[
"Perl",
@@ -449,10 +454,11 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "025"
},
{
- "id" : "026",
+ "name" : "026",
"data" : [
[
"Perl",
@@ -467,7 +473,7 @@
10
]
],
- "name" : "026"
+ "id" : "026"
},
{
"name" : "027",
@@ -488,7 +494,7 @@
"id" : "027"
},
{
- "id" : "028",
+ "name" : "028",
"data" : [
[
"Perl",
@@ -503,10 +509,9 @@
9
]
],
- "name" : "028"
+ "id" : "028"
},
{
- "name" : "029",
"data" : [
[
"Perl",
@@ -521,11 +526,12 @@
12
]
],
+ "name" : "029",
"id" : "029"
},
{
- "name" : "030",
"id" : "030",
+ "name" : "030",
"data" : [
[
"Perl",
@@ -560,6 +566,7 @@
"id" : "031"
},
{
+ "name" : "032",
"data" : [
[
"Perl",
@@ -574,12 +581,10 @@
10
]
],
- "id" : "032",
- "name" : "032"
+ "id" : "032"
},
{
"name" : "033",
- "id" : "033",
"data" : [
[
"Perl",
@@ -593,10 +598,12 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "033"
},
{
"id" : "034",
+ "name" : "034",
"data" : [
[
"Perl",
@@ -610,11 +617,9 @@
"Blog",
11
]
- ],
- "name" : "034"
+ ]
},
{
- "name" : "035",
"data" : [
[
"Perl",
@@ -629,10 +634,10 @@
9
]
],
+ "name" : "035",
"id" : "035"
},
{
- "name" : "036",
"data" : [
[
"Perl",
@@ -647,9 +652,12 @@
11
]
],
+ "name" : "036",
"id" : "036"
},
{
+ "id" : "037",
+ "name" : "037",
"data" : [
[
"Perl",
@@ -663,12 +671,10 @@
"Blog",
9
]
- ],
- "id" : "037",
- "name" : "037"
+ ]
},
{
- "name" : "038",
+ "id" : "038",
"data" : [
[
"Perl",
@@ -683,10 +689,10 @@
12
]
],
- "id" : "038"
+ "name" : "038"
},
{
- "id" : "039",
+ "name" : "039",
"data" : [
[
"Perl",
@@ -701,11 +707,11 @@
12
]
],
- "name" : "039"
+ "id" : "039"
},
{
- "name" : "040",
"id" : "040",
+ "name" : "040",
"data" : [
[
"Perl",
@@ -722,6 +728,7 @@
]
},
{
+ "name" : "041",
"data" : [
[
"Perl",
@@ -736,10 +743,10 @@
9
]
],
- "id" : "041",
- "name" : "041"
+ "id" : "041"
},
{
+ "id" : "042",
"name" : "042",
"data" : [
[
@@ -754,11 +761,11 @@
"Blog",
11
]
- ],
- "id" : "042"
+ ]
},
{
"id" : "043",
+ "name" : "043",
"data" : [
[
"Perl",
@@ -772,12 +779,11 @@
"Blog",
11
]
- ],
- "name" : "043"
+ ]
},
{
- "name" : "044",
"id" : "044",
+ "name" : "044",
"data" : [
[
"Perl",
@@ -794,6 +800,8 @@
]
},
{
+ "id" : "045",
+ "name" : "045",
"data" : [
[
"Perl",
@@ -807,11 +815,10 @@
"Blog",
11
]
- ],
- "id" : "045",
- "name" : "045"
+ ]
},
{
+ "id" : "046",
"data" : [
[
"Perl",
@@ -826,7 +833,6 @@
10
]
],
- "id" : "046",
"name" : "046"
},
{
@@ -849,6 +855,7 @@
},
{
"id" : "048",
+ "name" : "048",
"data" : [
[
"Perl",
@@ -862,10 +869,11 @@
"Blog",
12
]
- ],
- "name" : "048"
+ ]
},
{
+ "id" : "049",
+ "name" : "049",
"data" : [
[
"Perl",
@@ -879,11 +887,10 @@
"Blog",
12
]
- ],
- "id" : "049",
- "name" : "049"
+ ]
},
{
+ "name" : "050",
"data" : [
[
"Perl",
@@ -898,8 +905,7 @@
12
]
],
- "id" : "050",
- "name" : "050"
+ "id" : "050"
},
{
"id" : "051",
@@ -921,7 +927,6 @@
},
{
"name" : "052",
- "id" : "052",
"data" : [
[
"Perl",
@@ -935,10 +940,10 @@
"Blog",
14
]
- ]
+ ],
+ "id" : "052"
},
{
- "name" : "053",
"id" : "053",
"data" : [
[
@@ -953,10 +958,11 @@
"Blog",
15
]
- ]
+ ],
+ "name" : "053"
},
{
- "name" : "054",
+ "id" : "054",
"data" : [
[
"Perl",
@@ -971,10 +977,11 @@
16
]
],
- "id" : "054"
+ "name" : "054"
},
{
"id" : "055",
+ "name" : "055",
"data" : [
[
"Perl",
@@ -988,11 +995,9 @@
"Blog",
14
]
- ],
- "name" : "055"
+ ]
},
{
- "id" : "056",
"data" : [
[
"Perl",
@@ -1007,7 +1012,8 @@
16
]
],
- "name" : "056"
+ "name" : "056",
+ "id" : "056"
},
{
"id" : "057",
@@ -1028,7 +1034,7 @@
"name" : "057"
},
{
- "name" : "058",
+ "id" : "058",
"data" : [
[
"Perl",
@@ -1043,9 +1049,10 @@
11
]
],
- "id" : "058"
+ "name" : "0