aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-02-11 11:03:26 +0000
committerGitHub <noreply@github.com>2025-02-11 11:03:26 +0000
commit71218d14d0f8df1d2933ac1944c62dbc21fd84ec (patch)
treea88777aa762f4aa47a326922d7f23fa757d92a7c
parente9d030e5fd8fa107797fac1489bca6ce2724d212 (diff)
parent51577219a07ba3e9f49aaa4e0ec88ae77961702c (diff)
downloadperlweeklychallenge-club-71218d14d0f8df1d2933ac1944c62dbc21fd84ec.tar.gz
perlweeklychallenge-club-71218d14d0f8df1d2933ac1944c62dbc21fd84ec.tar.bz2
perlweeklychallenge-club-71218d14d0f8df1d2933ac1944c62dbc21fd84ec.zip
Merge pull request #11562 from deadmarshal/TWC304
TWC304
-rw-r--r--challenge-304/deadmarshal/blog.txt1
-rw-r--r--challenge-304/deadmarshal/java/Ch1.java14
-rw-r--r--challenge-304/deadmarshal/java/Ch2.java17
-rw-r--r--challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m322
-rw-r--r--challenge-304/deadmarshal/modula-3/ch1/src/m3makefile5
-rw-r--r--challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m329
-rw-r--r--challenge-304/deadmarshal/modula-3/ch2/src/m3makefile5
-rw-r--r--challenge-304/deadmarshal/perl/ch-1.pl13
-rw-r--r--challenge-304/deadmarshal/perl/ch-2.pl20
9 files changed, 126 insertions, 0 deletions
diff --git a/challenge-304/deadmarshal/blog.txt b/challenge-304/deadmarshal/blog.txt
new file mode 100644
index 0000000000..f09eac24a6
--- /dev/null
+++ b/challenge-304/deadmarshal/blog.txt
@@ -0,0 +1 @@
+https://deadmarshal.blogspot.com/2025/02/twc304.html
diff --git a/challenge-304/deadmarshal/java/Ch1.java b/challenge-304/deadmarshal/java/Ch1.java
new file mode 100644
index 0000000000..2dc974388d
--- /dev/null
+++ b/challenge-304/deadmarshal/java/Ch1.java
@@ -0,0 +1,14 @@
+public class Ch1 {
+ public static void main(String[] args) {
+ System.out.println(arrange_binary(new int[]{1, 0, 0, 0, 1}, 1));
+ System.out.println(arrange_binary(new int[]{1, 0, 0, 0, 1}, 2));
+ }
+
+ private static boolean arrange_binary(int[] nums, int n) {
+ int c = 0;
+ for (int i = 0; i < nums.length - 1; ++i)
+ if (nums[i] == 0 && nums[i + 1] == 0) c++;
+ return c > n;
+ }
+}
+
diff --git a/challenge-304/deadmarshal/java/Ch2.java b/challenge-304/deadmarshal/java/Ch2.java
new file mode 100644
index 0000000000..4e28cacb96
--- /dev/null
+++ b/challenge-304/deadmarshal/java/Ch2.java
@@ -0,0 +1,17 @@
+public class Ch2 {
+ public static void main(String[] args) {
+ System.out.println(maximum_average(new int[]{1, 12, -5, -6, 50, 3}, 4));
+ System.out.println(maximum_average(new int[]{5}, 1));
+ }
+
+ private static double maximum_average(int[] nums, int n) {
+ double max = 0, avg;
+ for (int start = 0; start <= nums.length - n; ++start) {
+ double subsum = 0;
+ for (int i = start; i < start + n; ++i) subsum += nums[i];
+ avg = subsum / n;
+ if (avg > max) max = avg;
+ }
+ return max;
+ }
+}
diff --git a/challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m3
new file mode 100644
index 0000000000..666683ecee
--- /dev/null
+++ b/challenge-304/deadmarshal/modula-3/ch1/src/Ch1.m3
@@ -0,0 +1,22 @@
+MODULE Ch1 EXPORTS Main;
+
+IMPORT SIO;
+
+VAR
+ A := ARRAY[0..4] OF INTEGER{1,0,0,0,1};
+
+PROCEDURE ArrangeBinary(VAR A:ARRAY OF INTEGER;
+ READONLY N:INTEGER):BOOLEAN =
+ VAR Count:INTEGER;
+ BEGIN
+ FOR I := FIRST(A) TO LAST(A)-1 DO
+ IF A[I] = 0 AND A[I+1] = 0 THEN INC(Count) END
+ END;
+ RETURN Count > N
+ END ArrangeBinary;
+
+BEGIN
+ SIO.PutBool(ArrangeBinary(A,1)); SIO.Nl();
+ SIO.PutBool(ArrangeBinary(A,2)); SIO.Nl()
+END Ch1.
+
diff --git a/challenge-304/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-304/deadmarshal/modula-3/ch1/src/m3makefile
new file mode 100644
index 0000000000..9f66e4a51f
--- /dev/null
+++ b/challenge-304/deadmarshal/modula-3/ch1/src/m3makefile
@@ -0,0 +1,5 @@
+import("libm3")
+import("libsio")
+implementation("Ch1")
+program("ch1")
+
diff --git a/challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m3
new file mode 100644
index 0000000000..61283fa8ff
--- /dev/null
+++ b/challenge-304/deadmarshal/modula-3/ch2/src/Ch2.m3
@@ -0,0 +1,29 @@
+MODULE Ch2 EXPORTS Main;
+
+IMPORT SIO;
+
+VAR
+ A1 := ARRAY[0..5] OF INTEGER{1,12,-5,-6,50,3};
+ A2 := ARRAY[0..0] OF INTEGER{5};
+
+PROCEDURE MaximumAverage(VAR A:ARRAY OF INTEGER;
+ READONLY N:INTEGER):LONGREAL =
+ VAR
+ Max,SubSum,Avg:LONGREAL;
+ BEGIN
+ FOR Start := FIRST(A) TO NUMBER(A) - N DO
+ FOR I := Start TO Start+N-1 DO
+ SubSum := SubSum + FLOAT(A[I],LONGREAL)
+ END;
+ Avg := SubSum / FLOAT(N,LONGREAL);
+ IF Avg > Max THEN Max := Avg END;
+ SubSum := 0.0D0;
+ END;
+ RETURN Max
+ END MaximumAverage;
+
+BEGIN
+ SIO.PutLongReal(MaximumAverage(A1,4)); SIO.Nl();
+ SIO.PutLongReal(MaximumAverage(A2,1)); SIO.Nl()
+END Ch2.
+
diff --git a/challenge-304/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-304/deadmarshal/modula-3/ch2/src/m3makefile
new file mode 100644
index 0000000000..798c627ef3
--- /dev/null
+++ b/challenge-304/deadmarshal/modula-3/ch2/src/m3makefile
@@ -0,0 +1,5 @@
+import("libm3")
+import("libsio")
+implementation("Ch2")
+program("ch2")
+
diff --git a/challenge-304/deadmarshal/perl/ch-1.pl b/challenge-304/deadmarshal/perl/ch-1.pl
new file mode 100644
index 0000000000..a2ab4bb138
--- /dev/null
+++ b/challenge-304/deadmarshal/perl/ch-1.pl
@@ -0,0 +1,13 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+
+sub arrange_binary{
+ my $c = 0;
+ map{$c++ if $_[0]->[$_] == 0 && $_[0]->[$_+1] == 0} 0..$#{$_[0]}-1;
+ $c > $_[1]
+}
+
+printf "%d\n",arrange_binary([1,0,0,0,1],1);
+printf "%d\n",arrange_binary([1,0,0,0,1],2);
+
diff --git a/challenge-304/deadmarshal/perl/ch-2.pl b/challenge-304/deadmarshal/perl/ch-2.pl
new file mode 100644
index 0000000000..4860fe580d
--- /dev/null
+++ b/challenge-304/deadmarshal/perl/ch-2.pl
@@ -0,0 +1,20 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use List::Util qw(sum0 min);
+use feature qw(say);
+
+sub maximum_average{
+ my ($arr,$n) = @_;
+ my $max = min @$arr;
+ foreach my $start(0..@$arr-$n){
+ my $subsum = sum0(@{$arr}[$start..$start+$n-1]);
+ my $avg = $subsum / $n;
+ $max = $avg if $avg > $max
+ }
+ $max
+}
+
+say maximum_average([1,12,-5,-6,50,3],4);
+say maximum_average([5],1);
+