Pagini recente » Cod sursa (job #1390208) | Cod sursa (job #831386) | Cod sursa (job #2527881) | Cod sursa (job #2630174) | Cod sursa (job #868535)
Cod sursa(job #868535)
#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;
}