Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- int x[11],a[11],c,b,n;
- bool valid(int k)
- {
- int i;
- for(i=1;i<k;i++)
- {if(x[i]==x[k])
- return 0;
- if(x[i]>x[k] and a[x[i]]==a[x[k]])
- return 0;
- }
- return 1;
- }
- void afisare(int k)
- {
- int i;
- for(i=1;i<=k;i++)
- cout<<a[x[i]];
- cout<<'\n';
- }
- void bkt()
- {
- int k=1;
- x[k]=0;
- while(k)
- {
- x[k]++;
- if(x[k]<=n)
- {
- if(valid(k))
- {
- if(k==n)
- afisare(k);
- else
- {
- k++;
- x[k]=0;
- }
- }
- }
- else
- k--;
- }
- }
- int main()
- {
- int i;
- cin>>n;
- while(n)
- {
- if(n%2!=0)
- c++;
- else
- b++;
- n=n/2;
- }
- n=b+c;
- for(i=1;i<=n;i++)
- if(i<=b)
- a[i]=0;
- else
- a[i]=1;
- bkt();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement