duminică, 4 noiembrie 2012

Problema 23

Sa se genereze n perechi de paranteze care se inchid corect. Exemplu: n=3: ( ( ( ) ) ) ( ( ) ( ) ) ( ) ( ( ) ) etc

#include<iostream.h>
int x[100],n,t;
void afisare()
{int j;
cout<<endl;
for(j=1;j<=2*n;j++)
if(x[j]==1)
cout<<"(";
else
cout<<")";
}
int cont(int k)
{ int i; pi=0;pd=0;
for(i=1;i<=k;i++)
if(x[i]==1)
pd++;
else
pi++;
if(pi>pd)
return 0;
if(x[1]==2 && k==1)
return 0;
if(k==2*n && pi!=pd)
return 0;
return1;}
void back(int k)
{int i;
for(i=1;i<=2;i++)
{x[k]=i;
if(cont(k))
if(k==2*n)
afisare();
else
back(k+1);}}
int main()
{cin>>n;
back(1);}

Niciun comentariu:

Trimiteți un comentariu