Cod sursa(job #868535)

Utilizator monica11Szekely Monica monica11 Data 31 ianuarie 2013 10:46:37
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
using namespace std;
ifstream f("expozitie.in");
ofstream g("expozitie.out");
int a[50][50],b[50][50];
int n,d,k,i,j,m,l,x;
void adunare(int a[],int b[],int c[])
{
    int i,t=0;
    for(i=1;i<=a[0]||i<=b[0]||t;i++,t/=10)
        c[i]=(t+=a[i]+b[i])%10;
    c[0]=i-1;
}
int main()
{
    f>>n>>d>>k;
    x=n-(d*k);
    if(x<0)
        g<<0;
    else
        if(x==0)
            g<<1;
        else
        {
            m=x+d-1;
            a[0][0]=a[0][1]=1;
            b[0][0]=1;
            for(i=1;i<=m;i++)
            {
                for(j=0;j<=i;j++)
                adunare(a[j],a[j-1],b[j]);
                for(l=1;l<=i;++l)
                for(j=0;j<=b[l][0];++j)
                a[l][j]=b[l][j];
            }
            for(i=a[x][0];i>0;i--)
            g<<a[x][i];
        }
    return 0;
}