Cod sursa(job #464729)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 21 iunie 2010 16:04:46
Problema Pavare2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>

using namespace std;

#define file_in "pavare2.in"
#define file_out "pavare2.out"

#define nmax 111
#define ll long long

int n,a,b,k;
ll v1[nmax];
ll v2[nmax];

void citire()
{
    //freopen(file_in,"r",stdin);
    //freopen(file_out,"w",stdout);

    scanf("%d %d %d %d", &n, &a, &b, &k);

}

inline int max(int a, int b) { return a>b?a:b; }

void solve()
{
    int i,j;
     v1[0]=1;
     v2[0]=1;
     for (i=1;i<=n;++i)
     {
         for (j=max(0,i-a);j<i;++j)
              v1[i]+=v2[j];
         for (j=max(0,i-b);j<i;++j)
              v2[i]+=v1[j];
     }

     printf("%lld\n", v1[n]+v2[n]);
     //pentru k=1
     i=1;
     while(i<=n)
     {
         j=1;

         while(j<=a && i<=n)
         {
               printf("0");
               j++;
               i++;
         }
         i++;
         if (i<=n)
         printf("1");
         //i++;
    }

}

int main()
{
    citire();
    solve();

    fclose(stdin);
    fclose(stdout);

    return 0;
}