Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int st[100];
- int k,as,ev,m=9,n;
- int init(int k)
- {
- st[k]=-2;
- }
- int succesor(int k)
- {
- if(st[k] < m)
- {
- st[k] = st[k] + 1;
- return 1;
- }
- else
- return 0;
- }
- int valid(int k)
- {
- for(int i=0;i<k;i++)
- {
- if(st[k]==st[i])
- return 0;
- return 1;
- }
- }
- int solutie(int k)
- {
- return k==n;
- }
- void tipar()
- {
- int m=st[1],sum=0;
- if(m%2==0)
- {
- for(int i=2;i<=n;i++)
- {
- if(st[i] == -1)
- st[i]=0;
- if(st[i]%2==0 && st[i]<m)
- {
- m=st[i];
- sum++;
- }
- }
- }
- if(sum==n-1)
- {
- for(int i=1;i<=n;i++)
- cout<<st[i];
- cout<<endl;
- }
- }
- void bkt()
- {
- k=1;
- init(k);
- while(k>0)
- {
- as=1;ev=0;
- while(as && !ev)
- {
- as=succesor(k);
- if(as)
- ev=valid(k);
- }
- if(as)
- {
- if(solutie(k))
- tipar();
- else
- {
- k++;
- init(k);
- }
- }
- else
- k--;
- }
- }
- int main()
- {
- cin>>n;
- bkt();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement