fork download
  1. :- set_prolog_flag(verbose,silent).
  2. :- prompt(_, '').
  3. :- use_module(library(readutil)).
  4.  
  5. searchHerf(0,List,[],List):-!.
  6. searchHerf(N,List,[X|Now],Next):-N2 is N-1,
  7. select(X,List,List2),
  8. searchHerf(N2,List2,Now,Next).
  9. calc([],_,M,M):-!.
  10. calc([X|Ls],N,M,Res):-M2 is M+N*X,
  11. N2 is N+1,
  12. calc(Ls,N2,M2,Res).
  13.  
  14. main:-
  15. process,
  16.  
  17. process:-
  18. /* your code goes here */
  19. List=[2,3,4,5,6,7,8,10],
  20. searchHerf(3,List,Ls,List2),
  21. searchHerf(5,List2,Rs,_),
  22. calc(Ls,1,0,LM),
  23. calc(Rs,1,0,RM),
  24. LM is RM,
  25. write(Ls),
  26. write(Rs),
  27. nl,
  28. false.
  29. process.
  30. :- main.
Success #stdin #stdout 0.11s 6992KB
stdin
Standard input is empty
stdout
[5,8,10][6,7,4,3,2]
[5,8,10][7,6,3,4,2]
[5,8,10][7,6,4,2,3]
[6,7,10][8,4,5,3,2]
[6,7,10][8,5,3,4,2]
[6,7,10][8,5,4,2,3]
[6,8,10][4,7,5,3,2]
[6,8,10][7,3,4,5,2]
[6,8,10][7,5,2,3,4]
[6,10,8][5,7,4,3,2]
[6,10,8][7,4,5,2,3]
[7,6,10][8,5,4,3,2]
[7,8,10][3,6,5,4,2]
[7,8,10][5,4,3,6,2]
[7,8,10][6,2,5,4,3]
[7,8,10][6,4,3,2,5]
[7,10,8][4,5,6,3,2]
[7,10,8][4,6,5,2,3]
[7,10,8][5,4,6,2,3]
[7,10,8][5,6,2,4,3]
[7,10,8][5,6,3,2,4]
[7,10,8][6,3,4,5,2]
[7,10,8][6,5,2,3,4]
[8,6,10][5,7,4,3,2]
[8,6,10][7,4,5,2,3]
[8,7,10][4,5,6,2,3]
[8,7,10][4,6,3,5,2]
[8,7,10][5,3,6,4,2]
[8,7,10][5,6,2,3,4]
[8,7,10][6,3,5,2,4]
[8,7,10][6,4,2,5,3]
[8,10,7][5,6,3,4,2]
[8,10,7][5,6,4,2,3]
[8,10,7][6,4,5,2,3]
[10,7,8][5,6,4,3,2]
[10,7,8][6,4,5,3,2]
[10,7,8][6,5,3,4,2]
[10,7,8][6,5,4,2,3]
[10,8,7][6,5,4,3,2]