:-use_module(library(lists)). keres(_,_,[],Akku,Output):-reverse(Akku,Output). keres(K,Szo,[Fej|Lista],Akku,Output):- (sub_atom(Szo,_,X,0,S), sub_atom(Fej,0,X,_,S), X =< K, X > 0)-> keres(K,Szo,Lista,[X-Fej|Akku],Output); keres(K,Szo,Lista,Akku,Output). valogat(_,[],_,Akku,Output):-reverse(Akku,Output). valogat(K,[Fej|Lista],Marad,Akku,Output):- ((Marad = [])-> keres(K,Fej,Lista,[],Out); (keres(K,Fej,Marad,[],Out1), keres(K,Fej,Lista,[],Out2), append(Out1,Out2,Out)), append(Marad,[Fej],Nulista), Out=[])-> valogat(K,Lista,Nulista,Akku,Output); valogat(K,Lista,Nulista,[Fej-Out|Akku],Output).