Advertisement
a53

numere124

a53
Oct 7th, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #define NR 11
  4. using namespace std;
  5. int v[NR],x[NR],n,c,k;
  6.  
  7. void init(int k)
  8. {
  9. x[k]=0;
  10. }
  11.  
  12. bool succesor(int k)
  13. {
  14. if(x[k]<n)
  15. return true;
  16. else
  17. return false;
  18. }
  19.  
  20. bool continuare(int k)
  21. {
  22. for(int i=1;i<=k-1;++i)
  23. if(x[k]==x[i])
  24. return false;
  25. return true;
  26. }
  27.  
  28. bool solutie(int k)
  29. {
  30. if(k==c+1)
  31. return true;
  32. else
  33. return false;
  34. }
  35.  
  36. void afisare()
  37. {
  38. if(v[x[1]]==0)
  39. return;
  40. for(int i=1;i<=c;++i)
  41. cout<<v[x[i]];
  42. cout<<'\n';
  43. }
  44.  
  45. void backtracking()
  46. {
  47. int k;
  48. k=1;
  49. init(1);
  50. while(k!=0)
  51. if (solutie(k))
  52. {
  53. afisare();
  54. --k;
  55. }
  56. else
  57. if(succesor(k))
  58. {
  59. ++x[k];
  60. if(continuare(k))
  61. ++k;
  62. }
  63. else
  64. {
  65. init(k);
  66. --k;
  67. }
  68. }
  69.  
  70. int main()
  71. {
  72. cin>>n>>c;
  73. int i=0;
  74. while(n)
  75. v[++i]=n%10,n/=10;
  76. n=i;
  77. sort(v,v+n+1);
  78. backtracking();
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement