Wooph

Shuffle trippy

Feb 23rd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. using namespace std;
  4. ifstream fin("shuffle.in");
  5. ofstream fout("shuffle.out");
  6. int st[30],n,M[30],nrsol,i;
  7. int valid(int k)
  8. {
  9.     for(i=1;i<k;i++)
  10.         if(st[k]==st[i]) return 0;
  11.     int i=1;
  12.     if(k>1)
  13.     { while(M[i]!=st[k])
  14.         i++;
  15.      if(st[k-1]==M[i-1] || st[k-1]==M[i+1]) return 0;
  16.     }
  17.     return 1;
  18. }
  19. void afisare()
  20. {
  21.     nrsol++;
  22.     for(int i=1;i<=n;i++)
  23.         fout<<st[i]<<" ";
  24.     fout<<"\n";
  25. }
  26. void back(int k)
  27. {
  28.     for(int i=1;i<=n;i++)
  29.     {
  30.         st[k]=i;
  31.         if(valid(k))
  32.         {
  33.             if(k==n) afisare();
  34.             else
  35.                 back(k+1);
  36.         }
  37.     }
  38. }
  39. int main()
  40. {
  41.     fin>>n;
  42.     for(int i=1;i<=n;i++)
  43.         fin>>M[i];
  44.     back(1);
  45.     if(nrsol==0)
  46.         fout<<"nu exista";
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment