Pagini recente » Cod sursa (job #1392429) | Cod sursa (job #993126) | Cod sursa (job #2494910) | Cod sursa (job #556567) | Cod sursa (job #1834426)
#include <fstream>
using namespace std;
long long n,a,b,k,i,j,s,u,x,y,sol[105];
struct vec
{
long long a,n;
};
vec v[105],w[105],var[105];
int main()
{
ifstream f("pavare2.in");
ofstream g("pavare2.out");
f>>n>>a>>b>>k;
v[1].a=1;
v[1].n=1;
var[1].a=1;
var[1].n=1;
for(i=2; i<=n; i++)
{
w[1].n=v[a].a;
for(j=2; j<=a; j++)
{
w[j].a=v[j-1].a;
w[1].n+=v[j-1].a;
}
w[1].a=v[b].n;
for(j=2; j<=b; j++)
{
w[j].n=v[j-1].n;
w[1].a+=v[j-1].n;
}
for(j=1; j<=a; j++) {v[j].a=w[j].a; var[i].a+=v[j].a;}
for(j=1; j<=b; j++) {v[j].n=w[j].n; var[i].n+=v[j].n;}
}
for(i=1; i<=a; i++) s+=v[i].a;
for(i=1; i<=b; i++) s+=v[i].n;
g<<s<<'\n';
k--;
for(i=1; i<=n; i++)
{
y=0;
u++;
for(j=0; i+j<=n&&j+u<=a; j++)
{
y+=var[n-i-j].n;
}
if(x+y<=k)
{
x+=y;
sol[i]=1;
u=0;
}
}
for(i=1; i<=n; i++) g<<sol[i];
g<<'\n';
f.close(); g.close();
return 0;
}