Pagini recente » Cod sursa (job #532898) | Cod sursa (job #1346591) | Clasament asd123 | Cod sursa (job #1695576) | Cod sursa (job #31019)
Cod sursa(job #31019)
#include<fstream.h>
int n,a,b,k,t=0,sol=0;
int c[110];
void citire()
{
ifstream f("pavare2.in");
f>>n>>a>>b>>k;
f.close();
}
long long int pav(int poz, int c, int nr)
{
if(nr==0) return 0;
if(poz==n) return 1;
if(c==0) return pav(poz+1,c,nr-1)+pav(poz+1,1,b);
else return pav(poz+1,c,nr-1)+pav(poz+1,0,a);
}
void back(int l, int x, int y)
{
if(l==n+1)
{
sol++;
if(sol==k) t=1;
}
else
{
int i;
for(i=0;i<=1 && !t;i++)
{
if(i==0 && !t)
{
if(x!=0 && !t)
{
c[l]=0;
back(l+1,x-1,b);
}
else
if(!t)
x=a;
}
else
if(!t)
{
if(y!=0 && !t)
{
c[l]=1;
back(l+1,a,y-1);
}
}
}
}
}
int main()
{
citire();
back(1,a,b);
ofstream g("pavare2.out");
g<<pav(1,0,a)+pav(1,1,b)<<"\n";
int i;
for(i=1;i<=n;i++)
g<<c[i];
g<<"\n";
g.close();
return 0;
}