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