Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<stdlib.h>
- using namespace std;
- int succesor(int st[20],int n,int k)
- { if(st[k]<n)
- { st[k]++;
- return 1;
- }
- else
- return 0;
- }
- int valid(int st[20],int k)
- { for(int i=1;i<k;i++)
- if(st[k]==st[i] || abs(st[k]-st[i])==k-i)
- return 0;
- return 1;
- }
- void tipar(int st[20],int n)
- { for(int i=1;i<=n;i++)
- cout<<st[i];
- cout<<endl;
- }
- void bt(int n,int k,int st[20])
- { int nr=0,as,ev;
- k=1;
- st[k]=0;
- while(k>0)
- { as=1;
- ev=0;
- while(as && !ev)
- { as=succesor(st,n,k);
- if(as)
- ev=valid(st,k);
- }
- if(as)
- if(k==n)
- {tipar(st,n);nr++;}
- else
- { k++;
- st[k]=0;
- }
- else
- k--;
- }
- cout<<"nr="<<nr;
- }
- int main()
- { int n,k,st[20];
- cin>>n;
- bt(n,k,st);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement