Pagini recente » Cod sursa (job #99768) | Cod sursa (job #489063) | Cod sursa (job #2140291) | Cod sursa (job #130081) | Cod sursa (job #360100)
Cod sursa(job #360100)
#include <cstdio>
#include <cstring>
#define lm 210
#define X 30103
int p[11][lm][lm], a[lm][lm], b[lm][lm], v[lm], k, aa, bb, t, n;
char s[lm];
int main()
{
freopen("diviz.in","r",stdin);
freopen("diviz.out","w",stdout);
scanf("%d %d %d\n",&k,&aa,&bb);
scanf("%s",s);
n=strlen(s);
int i, j, r, x, c;
for (i=0; i<n; i++) v[i+1]=s[i]-'0';
for (i=1; i<=n; i++)
{
c=v[i]%k;
if (v[i]) a[1][c]=1;
for (j=2; j<=i; j++)
{
for (r=0; r<k; r++)
{
x=10*r%k+c;
x=x%k;
a[j][x]+=b[j-1][r];
if (p[v[i]][0][0]) a[j][x]-=p[v[i]][j][x];
}
}
p[v[i]][0][0]++;
for (j=1; j<=i; j++)
for (r=0; r<k; r++) p[v[i]][j][r]=a[j][r];
for (j=1; j<=n; j++)
for (r=0; r<k; r++)
{
b[j][r]+=a[j][r];
a[j][r]=0;
}
}
for (i=aa; i<=bb; i++) t+=b[i][0];
printf("%d",t);
}