Pagini recente » Cod sursa (job #349970) | Cod sursa (job #352529) | Cod sursa (job #616053) | Cod sursa (job #332295) | Cod sursa (job #352084)
Cod sursa(job #352084)
#include<iostream.h>
long nr1=0,nr0=0,n,sol[1000],sum;
void tipar()
{long s=0,i;
for(i=1;i<=sum;i++)
s=s*2+sol[i];
cout<<s<<'\n';
}
int valid(int i,int k)
{int arca0=0,arca1=0;
for(i=1;i<sum;i++)
if(sol[i]==1)
arca1++;
else
arca0++;
if(arca1>nr1||arca0>nr0)
return 0;
if(k==1&&sol[1]==0)
return 0;
if(k==sum&&(arca0!=nr0||arca1!=nr1))
return 0;
return 1;
}
void back(int k)
{if(k>sum)
tipar();
else
for(int i=0;i<=1;i++)
if(valid(i,k))
{sol[k]=i;
back(k+1);
}
}
int main()
{n=6;
while(n)
{ if(n%2==0)
nr0++;
else
nr1++;
n=n/2;
}
sum=nr0+nr1;
back(1);
return 0;
}