Cod sursa(job #8798)

Utilizator mariusdrgdragus marius mariusdrg Data 25 ianuarie 2007 17:02:47
Problema Pavare2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include<stdio.h>

const int maxn = 300;


int a[maxn][maxn][3];
int nr[maxn];
int i;
int j;
int k;
int sum;
int n;


int main()
{
        freopen("pavare2.in","r",stdin);
        freopen("pavare2.out","w",stdout);
        int k2;
        scanf("%d %d %d %d",&n,&nr[0],&nr[1],&k2);
        a[1][1][0]=1;
        a[1][1][1]=1;
        for(i=1;i<=n;i++)
        {
                for(j=1;j<=n;j++)
                        for(k=0;k<=1;k++)
                        {
                                if (j+1<=nr[k]) a[i+1][j+1][k]+=a[i][j][k];
                                a[i+1][1][k^1]+=a[i][j][k];
                        }

        }
        for(i=1;i<=n;i++)
                for(k=0;k<=1;k++)
                        sum+=a[n][i][k];
        printf("%d\n",sum);
        int i1;
        i1=n;
        while(i1)
        {
                sum=0;
                for(i=1;i<=n;i++)
                        sum+=a[i1][i][0];
                if (sum<=k2)
                {
                        printf("1");
                        k2-=sum;
                }
                else
                {
                        printf("0");
                }

                i1--;
        }
        printf("\n");
        
        return 0;

}