Advertisement
monyca98

probema celor n dame

May 30th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include<iostream>
  2. #include<stdlib.h>
  3. using namespace std;
  4. int succesor(int st[20],int n,int k)
  5. {   if(st[k]<n)
  6.     {   st[k]++;
  7.         return 1;
  8.     }
  9.     else
  10.         return 0;
  11. }
  12. int valid(int st[20],int k)
  13. {   for(int i=1;i<k;i++)
  14.         if(st[k]==st[i] || abs(st[k]-st[i])==k-i)
  15.             return 0;
  16.     return 1;
  17. }
  18. void tipar(int st[20],int n)
  19. {   for(int i=1;i<=n;i++)
  20.         cout<<st[i];
  21.     cout<<endl;
  22. }
  23. void bt(int n,int k,int st[20])
  24. {   int nr=0,as,ev;
  25.     k=1;
  26.     st[k]=0;
  27.     while(k>0)
  28.     {   as=1;
  29.         ev=0;
  30.         while(as && !ev)
  31.         {   as=succesor(st,n,k);
  32.             if(as)
  33.                 ev=valid(st,k);
  34.         }
  35.         if(as)
  36.             if(k==n)
  37.                 {tipar(st,n);nr++;}
  38.             else
  39.             {   k++;
  40.                 st[k]=0;
  41.              }
  42.         else
  43.             k--;
  44.     }
  45.     cout<<"nr="<<nr;
  46. }
  47. int main()
  48. {   int n,k,st[20];
  49.     cin>>n;
  50.     bt(n,k,st);
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement