Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int x[100],n,nr,k1;
  4. void tipar(){
  5. for(int i = 1; i <= k1; i++){
  6. cout<<x[i]<<",";
  7. }
  8. cout<<"\n";
  9. nr++;
  10. }
  11. int succesor(int k){
  12. if(x[k] < n){
  13. x[k]++;
  14. return 1;
  15. }
  16. return 0;
  17. }
  18. int valid(int k){
  19. for(int i = 1; i <= k-1; i++)
  20. if(x[i] == x[k])
  21. return 0;
  22. if(x[k-1] > x[k])
  23. return 0;
  24. return 1;
  25. }
  26. void backtracking(){
  27. int as,ev,k;
  28. k = 1;
  29. while(k>0){
  30. do {
  31. as = succesor(k);
  32. if(as)
  33. ev = valid(k);
  34. } while(as && !ev);
  35. if(as)
  36. {
  37. if(k == k1)
  38. tipar();
  39. else{
  40. k++;
  41. x[k] = 0;
  42. }
  43. }
  44. else{
  45. k--;
  46. }
  47. }
  48. }
  49. int main(){
  50. cout<<"n = ";cin>>n;
  51. cout<<"k1 = ";cin>>k1;
  52. backtracking();
  53. cout<<"nr solutii "<<nr;
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement