aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-01-29 20:58:18 +0000
committerGitHub <noreply@github.com>2025-01-29 20:58:18 +0000
commitc85d197b0431ddf47feebfe7385b0a0b04f73da6 (patch)
treeca5c3071b9d70f3cfd9acca209e3b028d1d08d4d
parent9f01445472e1d7726cb68927820e322d56ca3142 (diff)
parent90814ffa981bd46b25b7c3b191f57948d09d19f9 (diff)
downloadperlweeklychallenge-club-c85d197b0431ddf47feebfe7385b0a0b04f73da6.tar.gz
perlweeklychallenge-club-c85d197b0431ddf47feebfe7385b0a0b04f73da6.tar.bz2
perlweeklychallenge-club-c85d197b0431ddf47feebfe7385b0a0b04f73da6.zip
Merge pull request #11507 from 2colours/branch-for-challenge-306
Branch for challenge 306
-rw-r--r--challenge-306/2colours/prolog/ch-1.p13
-rw-r--r--challenge-306/2colours/prolog/ch-2.p18
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-306/2colours/prolog/ch-1.p b/challenge-306/2colours/prolog/ch-1.p
new file mode 100644
index 0000000000..0e90897a5d
--- /dev/null
+++ b/challenge-306/2colours/prolog/ch-1.p
@@ -0,0 +1,13 @@
+:- use_module(library(clpfd)).
+
+task1(Ints, Result) :-
+ length(Ints, Max_L),
+ findall(Sum, (
+ N in 1..Max_L,
+ N mod 2 #= 1,
+ indomain(N),
+ length(SA, N),
+ append([_Prefix, SA, _Suffix], Ints),
+ sum_list(SA, Sum)
+ ), Sums),
+ sum_list(Sums, Result).
diff --git a/challenge-306/2colours/prolog/ch-2.p b/challenge-306/2colours/prolog/ch-2.p
new file mode 100644
index 0000000000..465532d012
--- /dev/null
+++ b/challenge-306/2colours/prolog/ch-2.p
@@ -0,0 +1,18 @@
+game([], 0).
+game([Last_Remaining], Last_Remaining).
+game(List, Result) :-
+ length(List, N), N > 1,
+ max_list(List, Max1),
+ once(select(Max1, List, Rest)),
+ max_list(Rest, Max2),
+ once(nth0(Pos2, Rest, Max2, Rest2)),
+ Diff is Max1 - Max2,
+ (Diff =:= 0 ->
+ game(Rest2, Result)
+ ;
+ true ->
+ nth0(Pos2, New_List, Diff, Rest2),
+ game(New_List, Result)
+ ).
+
+task2(Ints, Result) :- game(Ints, Result), !.