Pagini recente » Cod sursa (job #1138786) | Cod sursa (job #1302994) | Cod sursa (job #788863) | Cod sursa (job #1769158) | Cod sursa (job #1772350)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct eu{char vc[10],x;};
eu a[201][101];
char s[201];
int i,j,n,m,k,a1,b,v[201],q,s1;
int main ()
{
freopen("diviz.in","r",stdin);
freopen("diviz.out","w",stdout);
scanf("%d%d%d\n",&k,&a1,&b);
gets(s);
n=strlen(s);
for(i=0;i<n;i++)
v[i+1]=s[i]-48;
for(i=0;i<n;i++)
a[0][i].x=1;
for(q=1;q<=n;q++)
{
for(i=min(b-1,q-1);i>=1;i--)
{
for(j=0;j<k;j++)
if(a[i][j].vc[v[q]]==0)
{
a[i+1][(j*10+v[q])%k].x+=a[i][j].x;
a[i+1][(j*10+v[q])%k].vc[v[q]]+=a[i][j].x;
}
else
{
a[i+1][(j*10+v[q])%k].x+=a[i][j].vc[v[q]];
a[i+1][(j*10+v[q])%k].vc[v[q]]+=a[i][j].vc[v[q]];
}
}
if(a[1][v[q]%k].vc[v[q]]==0)
{
a[1][v[q]%k].vc[v[q]]=1;
a[1][v[q]%k].x=1;
}
}
for(i=a1;i<=b;i++)
s1+=a[i][0].x;
printf("%d",s1);
return 0;
}