% vim: ft=prolog main(Filepath) :- read_file_to_string(Filepath, InputString, []), atom_chars(InputString, Input), p1(Input, Ans1), writeln(Ans1), % p2(Input, Ans2), % writeln(Ans2), !. % p1([A,B,C,D|_], 4) :- unique([A,B,C,D]). p1(XS, 4) :- take(XS, 4, YS), unique(YS). p1([_|T], L) :- p1(T, L1), L is L1+1. unique([H|T]) :- \+ member(H, T), unique(T). unique([]). p2(XS, 14) :- take(XS, 14, YS), unique(YS). p2([_|T], L) :- p2(T, L1), L is L1+1. % take(XS, N, YS) :- take(XS, N, [], YS). % take(_, 0, Acc, Acc). % take([X|XS], N, Acc, YS) :- N1 is N - 1, take(XS, N1, [X|Acc], YS).