Pagini recente » Cod sursa (job #23072) | Cod sursa (job #2665671) | Cod sursa (job #2947437) | Cod sursa (job #1201508) | Cod sursa (job #756438)
Cod sursa(job #756438)
#include <cstdio>
#include <string.h>
#define Nmax 256
#define Kmax 128
const int modul = 30103;
int n, k, a, b, i, j, cf, pas, c, sol, t;
int sir[Nmax];
char s[Nmax];
int d[Nmax][Kmax][10];
void citire()
{
scanf("%d %d %d\n", &k, &a, &b);
scanf("%s\n", s);
n = strlen(s);
for (i=0; i<n; ++i)
sir[i+1] = s[i] - '0';
}
void solve()
{
for (pas=1; pas<=n; ++pas)
{
cf = sir[pas];
for (i=n-1; i>0; --i)
{
for (j=0; j<k; ++j)
d[i+1][j][cf] = 0;
for (j=0; j<k; ++j)
{
t = (j * 10 + cf) % k;
for (c=0; c<=9; ++c)
{
d[i+1][t][cf] += d[i][j][c];
if (d[i+1][t][cf] >= modul)
d[i+1][t][cf] -= modul;
}
}
}
if (cf)
d[1][cf % k][cf] = 1;
}
for (i=a; i<=b; ++i)
for (j=0; j<10; ++j)
{
sol += d[i][0][j];
if (sol >= modul)
sol -= modul;
}
printf("%d\n", sol);
}
int main()
{
freopen("diviz.in","r",stdin);
freopen("diviz.out","w",stdout);
citire();
solve();
return 0;
}