aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-05-21 13:43:38 +0100
committerGitHub <noreply@github.com>2024-05-21 13:43:38 +0100
commitc4ae6428a67c4844df2844a8cb39a8bcf705a8aa (patch)
treee5c9d4963cb207141a72fe0daaae4b61dfeb0201
parent05dab35c713c1d08a83305d8cdd6e9328d86575a (diff)
parent7543ffc033b251b55c32ce83133b789e520995d6 (diff)
downloadperlweeklychallenge-club-c4ae6428a67c4844df2844a8cb39a8bcf705a8aa.tar.gz
perlweeklychallenge-club-c4ae6428a67c4844df2844a8cb39a8bcf705a8aa.tar.bz2
perlweeklychallenge-club-c4ae6428a67c4844df2844a8cb39a8bcf705a8aa.zip
Merge pull request #10124 from zapwai/branch-for-270
Week 270
-rw-r--r--challenge-270/zapwai/c/ch-1.c56
-rw-r--r--challenge-270/zapwai/javascript/ch-1.js50
-rw-r--r--challenge-270/zapwai/perl/ch-1.pl42
-rw-r--r--challenge-270/zapwai/python/ch-1.py40
-rw-r--r--challenge-270/zapwai/rust/ch-1.rs55
5 files changed, 243 insertions, 0 deletions
diff --git a/challenge-270/zapwai/c/ch-1.c b/challenge-270/zapwai/c/ch-1.c
new file mode 100644
index 0000000000..60630ec102
--- /dev/null
+++ b/challenge-270/zapwai/c/ch-1.c
@@ -0,0 +1,56 @@
+#include <stdio.h>
+#include <stdbool.h>
+
+bool is_special(int m[3][3], int M, int N, int i, int j) {
+ if (m[i][j] != 1) {
+ return 0;
+ }
+ for (int k = 0; k < M; k++) {
+ if (k == i) {
+ continue;
+ }
+ if (m[k][j] != 0) {
+ return 0;
+ }
+ }
+ for (int k = 0; k < N; k++) {
+ if (k == j) {
+ continue;
+ }
+ if (m[i][k] != 0) {
+ return 0;
+ }
+ }
+ return 1;
+}
+
+void proc(int m[3][3], int M, int N) {
+ printf("Input: m = ");
+ int cnt = 0;
+ for (int i = 0; i < M; i++) {
+ printf("\n\t\t");
+ for (int j = 0; j < N; j++) {
+ printf("%d ", m[i][j]);
+ if (is_special(m, M, N, i, j)) {
+ cnt++;
+ }
+ }
+ }
+ printf("\nOutput: %d\n", cnt);
+}
+
+int main() {
+ int matrix[3][3] = { {1, 0, 0},
+ {0, 0, 1},
+ {1, 0, 0},
+ };
+
+ int matrix2[3][3] = { {1, 0, 0},
+ {0, 1, 0},
+ {0, 0, 1},
+ };
+
+ proc(matrix, 3, 3);
+ proc(matrix2, 3, 3);
+}
+
diff --git a/challenge-270/zapwai/javascript/ch-1.js b/challenge-270/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..d8b130e799
--- /dev/null
+++ b/challenge-270/zapwai/javascript/ch-1.js
@@ -0,0 +1,50 @@
+let matrix = [ [1, 0, 0],
+ [0, 0, 1],
+ [1, 0, 0],
+ ];
+
+let matrix2 = [ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1],
+ ];
+
+proc(matrix);
+proc(matrix2);
+
+function is_special(m, M, N, i, j) {
+ if (m[i][j] != 1) {
+ return 0;
+ }
+ for (let k = 0; k < M; k++) {
+ if (k == i) {
+ continue;
+ }
+ if (m[k][j] != 0) {
+ return 0;
+ }
+ }
+ for (let k = 0; k < N; k++) {
+ if (k == j) {
+ continue;
+ }
+ if (m[i][k] != 0) {
+ return 0;
+ }
+ }
+ return 1;
+}
+
+function proc(m) {
+ let M = m.length;
+ let N = m[0].length;
+ console.log("Input: m = ", m);
+ let cnt = 0;
+ for (let i = 0; i < M; i++) {
+ for (let j = 0; j < N; j++) {
+ if (is_special(m, M, N, i, j)) {
+ cnt++;
+ }
+ }
+ }
+ console.log("Output: ", cnt);
+}
diff --git a/challenge-270/zapwai/perl/ch-1.pl b/challenge-270/zapwai/perl/ch-1.pl
new file mode 100644
index 0000000000..d6dc4e56db
--- /dev/null
+++ b/challenge-270/zapwai/perl/ch-1.pl
@@ -0,0 +1,42 @@
+use v5.38;
+my $matrix = [ [1, 0, 0],
+ [0, 0, 1],
+ [1, 0, 0],
+ ];
+
+my $matrix2 = [ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1],
+ ];
+
+sub is_special($m, $M, $N, $i, $j) {
+ return 0 if ($$m[$i][$j] != 1);
+ for my $k (0 .. $M) {
+ next if ($k == $i);
+ return 0 if ($$m[$k][$j] != 0);
+ }
+ for my $k (0 .. $N) {
+ next if ($k == $j);
+ return 0 if ($$m[$i][$k] != 0);
+ }
+ return 1;
+}
+
+sub proc($m) {
+ my $M = @$m - 1;
+ my $N = @{$$m[0]} - 1;
+ say "Input: m = ";
+ my $cnt = 0;
+ for my $i (0 .. $M) {
+ print "\t";
+ for my $j (0 .. $N) {
+ print $$m[$i][$j];
+ $cnt++ if is_special($m, $M, $N, $i, $j);
+ }
+ print "\n";
+ }
+ say "Output: $cnt";
+}
+
+proc($matrix);
+proc($matrix2);
diff --git a/challenge-270/zapwai/python/ch-1.py b/challenge-270/zapwai/python/ch-1.py
new file mode 100644
index 0000000000..cee3a0cdfc
--- /dev/null
+++ b/challenge-270/zapwai/python/ch-1.py
@@ -0,0 +1,40 @@
+matrix = [ [1, 0, 0],
+ [0, 0, 1],
+ [1, 0, 0],
+ ]
+
+matrix2 = [ [1, 0, 0],
+ [0, 1, 0],
+ [0, 0, 1],
+ ]
+
+def is_special(m, M, N, i, j):
+ if m[i][j] != 1:
+ return 0
+ for k in range(M):
+ if k == i:
+ continue
+ if m[k][j] != 0:
+ return 0
+ for k in range (N):
+ if k == j:
+ continue
+ if m[i][k] != 0:
+ return 0
+ return 1
+
+def proc(m):
+ M = len(m)
+ N = len(m[0])
+ print("Input: \nm = ")
+ cnt = 0
+ for i in range(M):
+ for j in range(N):
+ print(m[i][j], end='')
+ if is_special(m, M, N, i, j):
+ cnt += 1
+ print("")
+ print("Output:", cnt)
+
+proc(matrix)
+proc(matrix2)
diff --git a/challenge-270/zapwai/rust/ch-1.rs b/challenge-270/zapwai/rust/ch-1.rs
new file mode 100644
index 0000000000..af2c806257
--- /dev/null
+++ b/challenge-270/zapwai/rust/ch-1.rs
@@ -0,0 +1,55 @@
+#![allow(non_snake_case)]
+
+fn is_special(m : &Vec<Vec<i32>>, M : i32, N : i32, i : usize, j : usize) -> bool {
+ if m[i][j] != 1 {
+ return false;
+ }
+ for k in 0 .. M as usize {
+ if k == i {
+ continue;
+ }
+ if m[k][j] != 0 {
+ return false;
+ }
+ }
+ for k in 0 .. N as usize {
+ if k == j {
+ continue;
+ }
+ if m[i][k] != 0 {
+ return false;
+ }
+ }
+ return true;
+}
+
+fn proc(m : Vec<Vec<i32>>, M : i32, N : i32) {
+ println!("Input: m = {:?}", m);
+ let mut cnt = 0;
+ for i in 0 .. M {
+ for j in 0 .. N {
+ if is_special(&m, M, N, i as usize, j as usize) {
+ cnt += 1;
+ }
+ }
+ }
+ println!("Output: {cnt}");
+}
+
+fn main() {
+ let matrix = vec![
+ vec![1, 0, 0],
+ vec![0, 0, 1],
+ vec![1, 0, 0],
+ ];
+
+ let matrix2 = vec![
+ vec![1, 0, 0],
+ vec![0, 1, 0],
+ vec![0, 0, 1],
+ ];
+
+ proc(matrix, 3, 3);
+ proc(matrix2, 3, 3);
+}
+