1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
% 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).
|