aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-049/cheok-yin-fung/perl/ch-1.pl52
-rw-r--r--stats/pwc-current.json181
-rw-r--r--stats/pwc-language-breakdown-summary.json56
-rw-r--r--stats/pwc-language-breakdown.json730
-rw-r--r--stats/pwc-leaders.json744
-rw-r--r--stats/pwc-summary-1-30.json116
-rw-r--r--stats/pwc-summary-121-150.json30
-rw-r--r--stats/pwc-summary-151-180.json38
-rw-r--r--stats/pwc-summary-31-60.json98
-rw-r--r--stats/pwc-summary-61-90.json112
-rw-r--r--stats/pwc-summary-91-120.json40
-rw-r--r--stats/pwc-summary.json42
12 files changed, 1153 insertions, 1086 deletions
diff --git a/challenge-049/cheok-yin-fung/perl/ch-1.pl b/challenge-049/cheok-yin-fung/perl/ch-1.pl
new file mode 100644
index 0000000000..a1c7ee23fe
--- /dev/null
+++ b/challenge-049/cheok-yin-fung/perl/ch-1.pl
@@ -0,0 +1,52 @@
+#!/usr/bin/perl
+use strict;
+# use Math::BigInt; could be for fun
+
+sub max {
+ $_[0]>$_[1] ? $_[0] : $_[1];
+}
+
+my $N = $ARGV[0];
+my $C = $N;
+my $s = 0;
+my $t = 0;
+
+while ( $C % 2 == 0) {
+ $C /= 2; $s++;
+}
+
+while ( $C % 5 == 0) {
+ $C /= 5; $t++;
+}
+
+# N = 2^s * 5^t * C
+# Result = 2^max(s,t) * 5^max(s,t) * C * something
+
+
+my @D = (1);
+my $k = ( ($C==1) ? -1 : 0);
+my @key = ();
+
+while ($k != -1 and @key == () ) {
+
+ my $temp;
+ $temp = (10*$D[2**($k-1)]) % $C; # in simpler but slower terms, $temp = (10**$k) % $C;
+ $D[2**($k)] = $temp;
+ $k++;
+ if ($k != 0 or $k != 1) {for ( 1 .. 2**($k-1)-1 ) {
+ $D[2**($k-1) + $_] = ( $D[$_] + $temp) % $C ;
+ if ($D[2**($k-1) + $_] == 0) {
+ push @key, 2**($k-1) + $_;
+ # We cannot simply write: $key = 2**($k-1) + $_;
+ # because there could be more than one mulitples in 100...000 to 111..111, e.g. C=27;
+ }
+ }
+ }
+
+
+}
+
+@key = sort {$a <=> $b} @key;
+
+if ($C != 1) {printf "%0b", $key[0];} else {print 1;}
+print "0" x max($s,$t);
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index d30113ff0a..148087d3d9 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,50 +1,63 @@
{
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
+ "chart" : {
+ "type" : "column"
},
"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
+ "plotOptions" : {
+ "series" : {
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ },
+ "borderWidth" : 0
+ }
},
"drilldown" : {
"series" : [
{
- "name" : "Dave Jacoby",
- "id" : "Dave Jacoby",
"data" : [
[
"Perl",
- 2
+ 1
]
- ]
+ ],
+ "name" : "Cheok-Yin Fung",
+ "id" : "Cheok-Yin Fung"
},
{
+ "name" : "Dave Jacoby",
"data" : [
[
"Perl",
2
]
],
- "id" : "Duane Powell",
- "name" : "Duane Powell"
+ "id" : "Dave Jacoby"
},
{
+ "id" : "Duane Powell",
+ "name" : "Duane Powell",
"data" : [
[
"Perl",
2
]
- ],
+ ]
+ },
+ {
"id" : "E. Choroba",
- "name" : "E. Choroba"
+ "name" : "E. Choroba",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ]
},
{
+ "id" : "Javier Luque",
"data" : [
[
"Perl",
@@ -59,32 +72,31 @@
1
]
],
- "name" : "Javier Luque",
- "id" : "Javier Luque"
+ "name" : "Javier Luque"
},
{
- "id" : "Jen Guerra",
"name" : "Jen Guerra",
"data" : [
[
"Blog",
1
]
- ]
+ ],
+ "id" : "Jen Guerra"
},
{
- "id" : "Jonas Berlin",
- "name" : "Jonas Berlin",
"data" : [
[
"Raku",
1
]
- ]
+ ],
+ "name" : "Jonas Berlin",
+ "id" : "Jonas Berlin"
},
{
- "name" : "Kevin Colyer",
"id" : "Kevin Colyer",
+ "name" : "Kevin Colyer",
"data" : [
[
"Raku",
@@ -94,7 +106,6 @@
},
{
"name" : "Laurent Rosenfeld",
- "id" : "Laurent Rosenfeld",
"data" : [
[
"Perl",
@@ -108,9 +119,11 @@
"Blog",
1
]
- ]
+ ],
+ "id" : "Laurent Rosenfeld"
},
{
+ "id" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -121,27 +134,26 @@
2
]
],
- "id" : "Luca Ferrari",
"name" : "Luca Ferrari"
},
{
"id" : "Mark Anderson",
- "name" : "Mark Anderson",
"data" : [
[
"Raku",
2
]
- ]
+ ],
+ "name" : "Mark Anderson"
},
{
+ "name" : "Markus Holzer",
"data" : [
[
"Raku",
1
]
],
- "name" : "Markus Holzer",
"id" : "Markus Holzer"
},
{
@@ -159,8 +171,8 @@
1
]
],
- "id" : "Mohammad S Anwar",
- "name" : "Mohammad S Anwar"
+ "name" : "Mohammad S Anwar",
+ "id" : "Mohammad S Anwar"
},
{
"id" : "Peter Scott",
@@ -173,6 +185,7 @@
]
},
{
+ "name" : "Roger Bell West",
"data" : [
[
"Perl",
@@ -183,12 +196,11 @@
2
]
],
- "id" : "Roger Bell West",
- "name" : "Roger Bell West"
+ "id" : "Roger Bell West"
},
{
- "name" : "Saif Ahmed",
"id" : "Saif Ahmed",
+ "name" : "Saif Ahmed",
"data" : [
[
"Perl",
@@ -197,6 +209,8 @@
]
},
{
+ "id" : "Simon Proctor",
+ "name" : "Simon Proctor",
"data" : [
[
"Raku",
@@ -206,29 +220,27 @@
"Blog",
1
]
- ],
- "id" : "Simon Proctor",
- "name" : "Simon Proctor"
+ ]
},
{
+ "id" : "Steven Wilson",
+ "name" : "Steven Wilson",
"data" : [
[
"Perl",
1
]
- ],
- "name" : "Steven Wilson",
- "id" : "Steven Wilson"
+ ]
},
{
"name" : "Wanderdoc",
- "id" : "Wanderdoc",
"data" : [
[
"Perl",
2
]
- ]
+ ],
+ "id" : "Wanderdoc"
},
{
"id" : "Yet Ebreo",
@@ -242,63 +254,67 @@
}
]
},
- "chart" : {
- "type" : "column"
+ "subtitle" : {
+ "text" : "[Champions: 20] Last updated at 2020-02-29 23:15:46 GMT"
},
"legend" : {
"enabled" : 0
},
+ "tooltip" : {
+ "followPointer" : 1,
+ "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/>"
+ },
"title" : {
"text" : "Perl Weekly Challenge - 049"
},
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
}
},
- "subtitle" : {
- "text" : "[Champions: 19] Last updated at 2020-02-29 22:53:20 GMT"
- },
"series" : [
{
+ "name" : "Perl Weekly Challenge - 049",
"data" : [
{
+ "y" : 1,
+ "drilldown" : "Cheok-Yin Fung",
+ "name" : "Cheok-Yin Fung"
+ },
+ {
"drilldown" : "Dave Jacoby",
- "name" : "Dave Jacoby",
- "y" : 2
+ "y" : 2,
+ "name" : "Dave Jacoby"
},
{
- "drilldown" : "Duane Powell",
"name" : "Duane Powell",
- "y" : 2
+ "y" : 2,
+ "drilldown" : "Duane Powell"
},
{
- "drilldown" : "E. Choroba",
+ "name" : "E. Choroba",
"y" : 2,
- "name" : "E. Choroba"
+ "drilldown" : "E. Choroba"
},
{
- "drilldown" : "Javier Luque",
"name" : "Javier Luque",
+ "drilldown" : "Javier Luque",
"y" : 5
},
{
+ "y" : 1,
"drilldown" : "Jen Guerra",
- "name" : "Jen Guerra",
- "y" : 1
+ "name" : "Jen Guerra"
},
{
+ "name" : "Jonas Berlin",
"drilldown" : "Jonas Berlin",
- "y" : 1,
- "name" : "Jonas Berlin"
+ "y" : 1
},
{
- "drilldown" : "Kevin Colyer",
"name" : "Kevin Colyer",
+ "drilldown" : "Kevin Colyer",
"y" : 2
},
{
@@ -312,57 +328,56 @@
"drilldown" : "Luca Ferrari"
},
{
- "drilldown" : "Mark Anderson",
"name" : "Mark Anderson",
+ "drilldown" : "Mark Anderson",
"y" : 2
},
{
- "drilldown" : "Markus Holzer",
"name" : "Markus Holzer",
+ "drilldown" : "Markus Holzer",
"y" : 1
},
{
- "y" : 4,
"name" : "Mohammad S Anwar",
- "drilldown" : "Mohammad S Anwar"
+ "drilldown" : "Mohammad S Anwar",
+ "y" : 4
},
{
+ "name" : "Peter Scott",
"drilldown" : "Peter Scott",
- "y" : 1,
- "name" : "Peter Scott"
+ "y" : 1
},
{
- "drilldown" : "Roger Bell West",
"y" : 4,
+ "drilldown" : "Roger Bell West",
"name" : "Roger Bell West"
},
{
- "y" : 2,
"name" : "Saif Ahmed",
+ "y" : 2,
"drilldown" : "Saif Ahmed"
},
{
- "name" : "Simon Proctor",
"y" : 3,
- "drilldown" : "Simon Proctor"
+ "drilldown" : "Simon Proctor",
+ "name" : "Simon Proctor"
},
{
- "y" : 1,
"name" : "Steven Wilson",
+ "y" : 1,
"drilldown" : "Steven Wilson"
},
{
+ "y" : 2,
"drilldown" : "Wanderdoc",
- "name" : "Wanderdoc",
- "y" : 2
+ "name" : "Wanderdoc"
},
{
"name" : "Yet Ebreo",
- "y" : 2,
- "drilldown" : "Yet Ebreo"
+ "drilldown" : "Yet Ebreo",
+ "y" : 2
}
],
- "name" : "Perl Weekly Challenge - 049",
"colorByPoint" : 1
}
]
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 133d7a1adb..4bce5f84c6 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,20 +1,41 @@
{
+ "xAxis" : {
+ "type" : "category",
+ "labels" : {
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ }
+ }
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ },
"subtitle" : {
- "text" : "Last updated at 2020-02-29 22:53:20 GMT"
+ "text" : "Last updated at 2020-02-29 23:15:46 GMT"
+ },
+ "legend" : {
+ "enabled" : "false"
},
"series" : [
{
"dataLabels" : {
- "color" : "#FFFFFF",
- "align" : "right",
"enabled" : "true",
"y" : 10,
+ "rotation" : -90,
+ "color" : "#FFFFFF",
+ "align" : "right",
+ "format" : "{point.y:.0f}",
"style" : {
"fontSize" : "13px",
"fontFamily" : "Verdana, sans-serif"
- },
- "format" : "{point.y:.0f}",
- "rotation" : -90
+ }
},
"data" : [
[
@@ -23,7 +44,7 @@
],
[
"Perl",
- 2033
+ 2034
],
[
"Raku",
@@ -33,31 +54,10 @@
"name" : "Contributions"
}
],
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
- },
- "legend" : {
- "enabled" : "false"
- },
- "chart" : {
- "type" : "column"
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
"yAxis" : {
"title" : {
"text" : null
},
"min" : 0
- },
- "xAxis" : {
- "labels" : {
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- }
- },
- "type" : "category"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index cfafa42324..dd32b18cb7 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,6 +1,6 @@
{
- "title" : {
- "text" : "Perl Weekly Challenge Language"
+ "chart" : {
+ "type" : "column"
},
"plotOptions" : {
"series" : {
@@ -11,281 +11,14 @@
}
}
},
- "legend" : {
- "enabled" : "false"
- },
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-02-29 22:53:20 GMT"
- },
- "series" : [
- {
- "name" : "Perl Weekly Challenge Languages",
- "data" : [
- {
- "y" : 140,
- "name" : "#001",
- "drilldown" : "001"
- },
- {
- "drilldown" : "002",
- "name" : "#002",
- "y" : 109
- },
- {
- "drilldown" : "003",
- "name" : "#003",
- "y" : 71
- },
- {
- "y" : 91,
- "name" : "#004",
- "drilldown" : "004"
- },
- {
- "y" : 71,
- "name" : "#005",
- "drilldown" : "005"
- },
- {
- "y" : 48,
- "name" : "#006",
- "drilldown" : "006"
- },
- {
- "drilldown" : "007",
- "name" : "#007",
- "y" : 56
- },
- {
- "name" : "#008",
- "y" : 70,
- "drilldown" : "008"
- },
- {
- "drilldown" : "009",
- "name" : "#009",
- "y" : 68
- },
- {
- "y" : 60,
- "name" : "#010",
- "drilldown" : "010"
- },
- {
- "y" : 79,
- "name" : "#011",
- "drilldown" : "011"
- },
- {
- "name" : "#012",
- "y" : 83,
- "drilldown" : "012"
- },
- {
- "name" : "#013",
- "y" : 76,
- "drilldown" : "013"
- },
- {
- "drilldown" : "014",
- "name" : "#014",
- "y" : 96
- },
- {
- "drilldown" : "015",
- "name" : "#015",
- "y" : 93
- },
- {
- "name" : "#016",
- "y" : 66,
- "drilldown" : "016"
- },
- {
- "name" : "#017",
- "y" : 79,
- "drilldown" : "017"
- },
- {
- "drilldown" : "018",
- "name" : "#018",
- "y" : 76
- },
- {
- "drilldown" : "019",
- "name" : "#019",
- "y" : 95
- },
- {
- "y" : 95,
- "name" : "#020",
- "drilldown" : "020"
- },
- {
- "drilldown" : "021",
- "name" : "#021",
- "y" : 67
- },
- {
- "drilldown" : "022",
- "y" : 63,
- "name" : "#022"
- },
- {
- "y" : 91,
- "name" : "#023",
- "drilldown" : "023"
- },
- {
- "name" : "#024",
- "y" : 70,
- "drilldown" : "024"
- },
- {
- "y" : 55,
- "name" : "#025",
- "drilldown" : "025"
- },
- {
- "y" : 70,
- "name" : "#026",
- "drilldown" : "026"
- },
- {
- "y" : 58,
- "name" : "#027",
- "drilldown" : "027"
- },
- {
- "drilldown" : "028",
- "y" : 78,
- "name" : "#028"
- },
- {
- "name" : "#029",
- "y" : 77,
- "drilldown" : "029"
- },
- {
- "drilldown" : "030",
- "y" : 115,
- "name" : "#030"
- },
- {
- "y" : 87,
- "name" : "#031",
- "drilldown" : "031"
- },
- {
- "name" : "#032",
- "y" : 92,
- "drilldown" : "032"
- },
- {
- "name" : "#033",
- "y" : 108,
- "drilldown" : "033"
- },
- {
- "drilldown" : "034",
- "name" : "#034",
- "y" : 62
- },
- {
- "drilldown" : "035",
- "y" : 62,
- "name" : "#035"
- },
- {
- "name" : "#036",
- "y" : 63,
- "drilldown" : "036"
- },
- {
- "drilldown" : "037",
- "name" : "#037",
- "y" : 63
- },
- {
- "y" : 65,
- "name" : "#038",
- "drilldown" : "038"
- },
- {
- "name" : "#039",
- "y" : 60,
- "drilldown" : "039"
- },
- {
- "name" : "#040",
- "y" : 66,
- "drilldown" : "040"
- },
- {
- "name" : "#041",
- "y" : 69,
- "drilldown" : "041"
- },
- {
- "drilldown" : "042",
- "y" : 88,
- "name" : "#042"
- },
- {
- "drilldown" : "043",
- "y" : 65,
- "name" : "#043"
- },
- {
- "drilldown" : "044",
- "y" : 81,
- "name" : "#044"
- },
- {
- "name" : "#045",
- "y" : 94,
- "drilldown" : "045"
- },
- {
- "name" : "#046",
- "y" : 83,
- "drilldown" : "046"
- },
- {
- "name" : "#047",
- "y" : 80,
- "drilldown" : "047"
- },
- {
- "name" : "#048",
- "y" : 103,
- "drilldown" : "048"
- },
- {
- "drilldown" : "049",
- "name" : "#049",
- "y" : 46
- }
- ],
- "colorByPoint" : "true"
- }
- ],
- "tooltip" : {
- "headerFormat" : "<span style=\"font-size:11px\"></span>",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
- "followPointer" : "true"
- },
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
"xAxis" : {
"type" : "category"
},
"drilldown" : {
"series" : [
{
+ "id" : "001",
+ "name" : "001",
"data" : [
[
"Perl",
@@ -299,9 +32,7 @@
"Blog",
11
]
- ],
- "id" : "001",
- "name" : "001"
+ ]
},
{
"data" : [
@@ -318,10 +49,12 @@
10
]
],
- "id" : "002",
- "name" : "002"
+ "name" : "002",
+ "id" : "002"
},
{
+ "id" : "003",
+ "name" : "003",
"data" : [
[
"Perl",
@@ -335,9 +68,7 @@
"Blog",
9
]
- ],
- "name" : "003",
- "id" : "003"
+ ]
},
{
"id" : "004",
@@ -358,6 +89,8 @@
]
},
{
+ "id" : "005",
+ "name" : "005",
"data" : [
[
"Perl",
@@ -371,9 +104,7 @@
"Blog",
12
]
- ],
- "id" : "005",
- "name" : "005"
+ ]
},
{
"id" : "006",
@@ -394,7 +125,6 @@
]
},
{
- "id" : "007",
"name" : "007",
"data" : [
[
@@ -409,7 +139,8 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "007"
},
{
"data" : [
@@ -426,10 +157,11 @@
12
]
],
- "id" : "008",
- "name" : "008"
+ "name" : "008",
+ "id" : "008"
},
{
+ "id" : "009",
"data" : [
[
"Perl",
@@ -444,12 +176,10 @@
13
]
],
- "name" : "009",
- "id" : "009"
+ "name" : "009"
},
{
"name" : "010",
- "id" : "010",
"data" : [
[
"Perl",
@@ -463,9 +193,12 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "010"
},
{
+ "id" : "011",
+ "name" : "011",
"data" : [
[
"Perl",
@@ -479,9 +212,7 @@
"Blog",
10
]
- ],
- "id" : "011",
- "name" : "011"
+ ]
},
{
"id" : "012",
@@ -502,8 +233,8 @@
]
},
{
- "name" : "013",
"id" : "013",
+ "name" : "013",
"data" : [
[
"Perl",
@@ -520,6 +251,7 @@
]
},
{
+ "name" : "014",
"data" : [
[
"Perl",
@@ -534,12 +266,9 @@
15
]
],
- "id" : "014",
- "name" : "014"
+ "id" : "014"
},
{
- "id" : "015",
- "name" : "015",
"data" : [
[
"Perl",
@@ -553,11 +282,12 @@
"Blog",
15
]
- ]
+ ],
+ "name" : "015",
+ "id" : "015"
},
{
"id" : "016",
- "name" : "016",
"data" : [
[
"Perl",
@@ -571,10 +301,10 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "016"
},
{
- "id" : "017",
"name" : "017",
"data" : [
[
@@ -589,10 +319,10 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "017"
},
{
- "name" : "018",
"id" : "018",
"data" : [
[
@@ -607,9 +337,11 @@
"Blog",
14
]
- ]
+ ],
+ "name" : "018"
},
{
+ "name" : "019",
"data" : [
[
"Perl",
@@ -624,10 +356,10 @@
13
]
],
- "id" : "019",
- "name" : "019"
+ "id" : "019"
},
{
+ "name" : "020",
"data" : [
[
"Perl",
@@ -642,12 +374,11 @@
13
]
],
- "name" : "020",
"id" : "020"
},
{
- "name" : "021",
"id" : "021",
+ "name" : "021",
"data" : [
[
"Perl",
@@ -682,6 +413,8 @@
"id" : "022"
},
{
+ "id" : "023",
+ "name" : "023",
"data" : [
[
"Perl",
@@ -695,13 +428,10 @@
"Blog",
12
]
- ],
- "name" : "023",
- "id" : "023"
+ ]
},
{
"id" : "024",
- "name" : "024",
"data" : [
[
"Perl",
@@ -715,9 +445,12 @@
"Blog",
11
]
- ]
+ ],
+ "name" : "024"
},
{
+ "id" : "025",
+ "name" : "025",
"data" : [
[
"Perl",
@@ -731,11 +464,10 @@
"Blog",
12
]
- ],
- "name" : "025",
- "id" : "025"
+ ]
},
{
+ "name" : "026",
"data" : [
[
"Perl",
@@ -750,10 +482,10 @@
10
]
],
- "name" : "026",
"id" : "026"
},
{
+ "id" : "027",
"data" : [
[
"Perl",
@@ -768,10 +500,11 @@
9
]
],
- "name" : "027",
- "id" : "027"
+ "name" : "027"
},
{
+ "id" : "028",
+ "name" : "028",
"data" : [
[
"Perl",
@@ -785,11 +518,11 @@
"Blog",