Advertisement
Ionut21

permutari cu backTr

Dec 12th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <fstream>
  4. #include <algorithm>
  5. using std::endl;
  6. //using namespace std;
  7. std::ifstream cin("permutari2.in");
  8. std::ofstream cout("permutari2.out");
  9.  
  10. int n, sol[100], v[100];
  11. void init (int k)
  12. {
  13. sol[k]=0;
  14. }
  15.  
  16. int solutie(int k)
  17. {
  18. return (k == n+1);
  19. }
  20. int succesor(int k)
  21. {
  22. if(sol[k]<n)
  23. {
  24. sol[k]++;
  25. return 1;
  26. }
  27. else return 0;
  28. }
  29.  
  30. void afisare()
  31. {
  32. for(int i=1;i<=n;i++)
  33. cout<<v[sol[i]]<<" ";
  34. cout<<endl;
  35. }
  36. int valid(int k)
  37. {
  38. for(int i=1;i<k;i++)
  39. {
  40. if(sol[i]==sol[k]) return 0;
  41. }
  42. return 1;
  43. }
  44. void back(int k)
  45. {
  46. if(solutie(k)) afisare();
  47. else
  48. {
  49. init(k);
  50. while(succesor(k))
  51. {
  52. if(valid(k)) back(k+1);
  53. }
  54. }
  55. }
  56.  
  57.  
  58.  
  59. int main()
  60. {
  61. cin>>n;
  62. for(int i=1; i<=n; i++) cin >> v[i];
  63. std::sort(v+1, v+n+1);
  64. back(1);
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement