diff options
| author | Roger Bell_West <roger@firedrake.org> | 2021-04-19 14:14:48 +0100 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2021-04-19 14:14:48 +0100 |
| commit | 5765bf00f6d7a76e71ab2e781d8e9e77117c4a4f (patch) | |
| tree | c878ac0851791d886d97881b61eb7fae843fac0d /challenge-109/roger-bell-west/rust/ch-2.rs | |
| parent | 6061cca3b056c3145e29acbbe23c7e946a8f4bd5 (diff) | |
| download | perlweeklychallenge-club-5765bf00f6d7a76e71ab2e781d8e9e77117c4a4f.tar.gz perlweeklychallenge-club-5765bf00f6d7a76e71ab2e781d8e9e77117c4a4f.tar.bz2 perlweeklychallenge-club-5765bf00f6d7a76e71ab2e781d8e9e77117c4a4f.zip | |
Solutions for challenge #109
Diffstat (limited to 'challenge-109/roger-bell-west/rust/ch-2.rs')
| -rw-r--r-- | challenge-109/roger-bell-west/rust/ch-2.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-109/roger-bell-west/rust/ch-2.rs b/challenge-109/roger-bell-west/rust/ch-2.rs new file mode 100644 index 0000000000..a7f46258c0 --- /dev/null +++ b/challenge-109/roger-bell-west/rust/ch-2.rs @@ -0,0 +1,29 @@ +use permutohedron::LexicalPermutation; + +#[test] +fn test_ex1() { + let q=foursquare((1..=7).collect::<Vec<i32>>()); + assert_eq!(q[0],q[2]+q[3]); + assert_eq!(q[1]+q[2],q[4]+q[5]); + assert_eq!(q[3]+q[4],q[6]); +} + +fn foursquare(src: Vec<i32>) -> Vec<i32> { + let mut t=src; + let mut sol: Vec<i32>=vec![]; + t.sort(); + loop { + let b=t[1]+t[2]+t[3]; + if t[0]+t[1]==b { + let c=t[3]+t[4]+t[5]; + if b==c && c == t[5]+t[6] { + sol=t; + break; + } + } + if !t.next_permutation() { + break; + } + } + return sol; +} |
