ValerianBenchea

BACKTRACKING Permutari de N elemente

Sep 28th, 2021 (edited)
282
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. using namespace std;
  3. int x[101], n;
  4. void afisare(int k)
  5. {
  6.     int i;
  7.     for(i=1; i<=k; i++)
  8.         cout<<x[i]<<" ";
  9.     cout<<"\n";
  10. }
  11. int e_bun(int k)
  12. {
  13.     int i;
  14.     bool ok=1;
  15.     for(i=1; i<=k-1; i++)
  16.         if(x[k]==x[i])
  17.             ok=0;
  18.     return ok;
  19. }
  20. void back()
  21. {
  22.     int k=1;
  23.     x[k]=0;
  24.     while(k>0)
  25.         if(x[k]<n)
  26.         {
  27.             x[k]++;
  28.             if(e_bun(k))
  29.                 if(k==n)
  30.                     afisare(k);
  31.                 else
  32.                 {
  33.                     k++;
  34.                     x[k]=0;
  35.                 }
  36.         }
  37.         else k--;
  38. }
  39. int main()
  40. {
  41.     cin>>n;
  42.     back();
  43.     return 0;
  44. }
  45.  
RAW Paste Data