#includeint st[1000],k,as,n,ev;void init(){st[k]=0;}void succesor(){as=0;if(st[k]<2){ as=1; st[k]++;}}void valid(){ev=1;int i,ns,nd;ns=nd=0;for(i=1;i<=k;i++) if(st[i]==1)ns++;else nd++; if(nsn/2)ev=0;}int solutie(){ if(k==n)return 1; return 0;}void tipar(){ int i; for(i=1;i<=k;i++) if(st[i]==1)cout<<"("; else cout<<")"; cout<<endl;}void back(){k=1;init();while(k){ do{succesor(); if(as)valid();}while(as&&!ev); if(as)if(solutie()) tipar();else{++k;init();}else --k;}}int main(){cout<<"n=";cin>>n;if(n%2==1){ cout<<"nr este impar imposibil de generat"; return 0;}back();return 0;}
#include
ReplyDeleteint st[1000],k,as,n,ev;
void init(){st[k]=0;}
void succesor(){as=0;
if(st[k]<2){
as=1;
st[k]++;}}
void valid(){ev=1;
int i,ns,nd;
ns=nd=0;
for(i=1;i<=k;i++)
if(st[i]==1)ns++;
else nd++;
if(nsn/2)ev=0;}
int solutie(){
if(k==n)return 1;
return 0;}
void tipar(){
int i;
for(i=1;i<=k;i++)
if(st[i]==1)cout<<"(";
else cout<<")";
cout<<endl;}
void back(){k=1;init();
while(k){
do{succesor();
if(as)valid();}
while(as&&!ev);
if(as)
if(solutie())
tipar();
else{++k;init();}
else --k;}}
int main(){cout<<"n=";cin>>n;
if(n%2==1){
cout<<"nr este impar imposibil de generat";
return 0;}
back();
return 0;}