Advertisement
a53

Generarea_Partitiilor

a53
Nov 20th, 2017
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. #define MAX 10
  4. int x[MAX],nr[MAX],m,i,k;
  5.  
  6. void init(int k)
  7. {
  8. x[k]=0;
  9. }
  10.  
  11. int succesor(int k)
  12. {
  13. if(x[k]<nr[k])
  14. return 1;
  15. else
  16. return 0;
  17. }
  18. int continuare(int k)
  19. {
  20. if(k<m+1)
  21. return 1;
  22. return 0;
  23. }
  24.  
  25. int solutie(int k)
  26. {
  27. if(k==m+1)
  28. return 1;
  29. else
  30. return 0;
  31. }
  32.  
  33. void afisare()
  34. {
  35. for(int i=1;i<=m;++i)
  36. cout<<x[i]<<' ';
  37. cout<<'\n';
  38. }
  39. void backtracking()
  40. {
  41. int k=1;
  42. init(1);
  43. while(k)
  44. if(solutie(k))
  45. afisare(),--k;
  46. else
  47. if(succesor(k))
  48. {
  49. ++x[k];
  50. if(continuare(k))
  51. ++k;
  52. }
  53. else
  54. init(k),--k;
  55. }
  56.  
  57. int main()
  58. {
  59. cout<<"m= "; cin>>m;
  60. cout<<"Numarul de elemente ";
  61. for (i=1;i<=m;++i)
  62. {
  63. cout<<"ale multimii "<<i<<" = ";
  64. cin>>nr[i];
  65. }
  66. backtracking();
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement