Am incercat sa fac problema si nu imi afiseaza nimic. Iata codul pe care l-am scris.
#include<fstream>
using namespace std;
int n,ST[100],as,ev,k,y=0,l=0,z=0;
ifstream f("paranteze.in");
ofstream g("paranteze.out");
void init()
{
ST[k]=-1;
}
void succ()
{
if(ST[k]<2)
{
ST[k]++;
as=1;
}
else as=0;
}
void valid()
{
ev=1;
for(int i=1;i<=k;i++)
{
if(ST[i]==0)
{
y++;
for(int j=i+1;j<=k;j++)
{
if(ST[j]==1)
l++;}}
else z++;
}
if(l==0)
ev=0;
if(z!=y!=n/2)
ev=0;
}
void tipar()
{
for(int i=1;i<=k;i++)
g<<ST[i]<<" ";
g<<endl;
}
int sol()
{
return (k==n);
}
void back()
{
k=1;
init();
while(k)
{
do{
succ();
if(as)
valid();
}
while(as && !ev);
if(as) if(sol())
tipar();
else{
k++;
init();
}
else k--;
}
}
int main()
{
f>>n;
back();
f.close();
g.close();
return 0;
}