aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-09-17 09:12:03 +0100
committerGitHub <noreply@github.com>2025-09-17 09:12:03 +0100
commit66c4aa9d6172c4120678b4aeb6c119af3edd7dcb (patch)
tree22fdb33b95bbbc919729bf148f90eac661436643
parent61ed1965dca92005b484ecc0e0dac504cf885558 (diff)
parent917da4ddf1d5d1619506cedd3570f3956e2621de (diff)
downloadperlweeklychallenge-club-66c4aa9d6172c4120678b4aeb6c119af3edd7dcb.tar.gz
perlweeklychallenge-club-66c4aa9d6172c4120678b4aeb6c119af3edd7dcb.tar.bz2
perlweeklychallenge-club-66c4aa9d6172c4120678b4aeb6c119af3edd7dcb.zip
Merge pull request #12694 from fer2o3/kachow
feat(339): completed
-rwxr-xr-xchallenge-339/benjamin-andre/rust/ch-1.rs35
-rwxr-xr-xchallenge-339/benjamin-andre/rust/ch-2.rs21
2 files changed, 56 insertions, 0 deletions
diff --git a/challenge-339/benjamin-andre/rust/ch-1.rs b/challenge-339/benjamin-andre/rust/ch-1.rs
new file mode 100755
index 0000000000..a37d384178
--- /dev/null
+++ b/challenge-339/benjamin-andre/rust/ch-1.rs
@@ -0,0 +1,35 @@
+#!/bin/sh
+//usr/bin/env rustc --test $0 -o kachow && ./kachow --nocapture; rm -f kachow ; exit
+
+fn max_diff(a: &[i32]) -> i32 {
+ let n = a.len();
+ let mut pairs = Vec::new();
+
+ for i in 0..n {
+ for j in i + 1..n {
+ pairs.push((a[i] * a[j], i, j));
+ }
+ }
+
+ let mut md = 0;
+ for i in 0..pairs.len() {
+ for j in i + 1..pairs.len() {
+ let (p1, x1, y1) = pairs[i];
+ let (p2, x2, y2) = pairs[j];
+ if x1 != x2 && x1 != y2 && y1 != x2 && y1 != y2 {
+ md = md.max((p1 - p2).abs());
+ }
+ }
+ }
+
+ md
+}
+
+#[test]
+fn example() {
+ assert_eq!(max_diff(&[5, 9, 3, 4, 6]), 42);
+ assert_eq!(max_diff(&[1, -2, 3, -4]), 10);
+ assert_eq!(max_diff(&[-3, -1, -2, -4]), 10);
+ assert_eq!(max_diff(&[10, 2, 0, 5, 1]), 50);
+ assert_eq!(max_diff(&[7, 8, 9, 10, 10]), 44);
+}
diff --git a/challenge-339/benjamin-andre/rust/ch-2.rs b/challenge-339/benjamin-andre/rust/ch-2.rs
new file mode 100755
index 0000000000..5f0a9e9b9e
--- /dev/null
+++ b/challenge-339/benjamin-andre/rust/ch-2.rs
@@ -0,0 +1,21 @@
+#!/bin/sh
+//usr/bin/env rustc --test $0 -o kachow && ./kachow --nocapture; rm -f kachow ; exit
+
+fn peak_point(gain: &[i32]) -> i32 {
+ let mut altitude = 0;
+ let mut peak = 0;
+ for &g in gain {
+ altitude += g;
+ peak = peak.max(altitude);
+ }
+ peak
+}
+
+#[test]
+fn example() {
+ assert_eq!(peak_point(&[-5, 1, 5, -9, 2]), 1);
+ assert_eq!(peak_point(&[10, 10, 10, -25]), 30);
+ assert_eq!(peak_point(&[3, -4, 2, 5, -6, 1]), 6);
+ assert_eq!(peak_point(&[-1, -2, -3, -4]), 0);
+ assert_eq!(peak_point(&[-10, 15, 5]), 10);
+}