/* задача 4 от домашното Пример: ?- p(3,4,X). X = [-3, -3, 9] ; X = [-3, -2, 8] ; X = [-3, -1, 7] ; X = [-3, 0, 6] ; X = [-3, 5, 1] ; X = [-2, -3, 8] ; X = [-2, -2, 7] ... */ p(N,M,K,S,R):-K =:= N -> T is N-S, R = [T]; between(M,1,U), X is U+max(U,0)*(K-S-U), K1 is K+1, S1 is S+X, p(N,M,K1,S1,Xs), R = [X|Xs]. p(N,M,X):-M1 is 1-M, p(N,M1,1,0,X). /* n царици с наивен backtracking Пример: ?- q(10,X). X = [ (1, 7), (2, 4), (3, 2), (4, 9), (5, 5), (6, 10), (7, 8), (8, 6), (9, 3), (10, 1)] ; X = [ (1, 8), (2, 5), (3, 2), (4, 4), (5, 10), (6, 7), (7, 9), (8, 6), (9, 3), (10, 1)] ; X = [ (1, 5), (2, 8), (3, 2), (4, 4), (5, 10), (6, 7), (7, 9), (8, 6), (9, 3), (10, 1)] ... */ q(N,I,R):-I > N -> R = []; K is I+1, q(N,K,S), between(1,N,J), forall(member((A,B),S), (B =\= J, abs(A-I) =\= abs(B-J))), R = [(I,J)|S]. q(N,X):-q(N,1,X).