Pagini recente » Cod sursa (job #1249763) | Cod sursa (job #1678575) | Cod sursa (job #197276) | Cod sursa (job #197179) | Cod sursa (job #342030)
Cod sursa(job #342030)
#include <cstdio>
#include <cstring>
#define file_in "diviz.in"
#define file_out "diviz.out"
#define Nmax 210
#define Mmax 110
#define Mod 30103
int N,A,K,B,i,j,nr,x,k,r;
char s[Nmax];
int c1[Nmax][Mmax];
int c2[Nmax][Mmax];
int c[10][Nmax][Mmax];
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d %d", &K,&A,&B);
scanf("%s", s+1);
N=strlen(s+1);
memset(c1,0,sizeof(c1));
memset(c,0,sizeof(c));
for (i=1;i<=N;++i)
{
x=s[i]-'0';
for (j=1;j<=B;++j)
for (k=0;k<K;++k)
c2[j][k]=0;
if (x>0)
c2[1][x%K]=1;
for (j=1;j<B;++j)
for (k=0;k<K;++k)
if (c1[j][k])
{
r=(k*10+x)%K;
c2[j+1][r]=(c2[j+1][r]+c1[j][k])%Mod;
/*if (c2[j+1][r]>=Mod)
c2[j+1][r]-=Mod;*/
}
for (j=1;j<=B;++j)
for (k=0;k<K;++k)
{
c2[j][k]=(c2[j][k]-c[x][j][k]+Mod)%Mod;
/*if (c2[j][k]<Mod)
c2[j][k]+=Mod;*/
c[x][j][k]=(c[x][j][k]+c2[j][k])%Mod;
/*if (c[x][j][k]>=Mod)
c[x][j][k]-=Mod;*/
c1[j][k]=(c1[j][k]+c2[j][k])%Mod;
/*if (c1[j][k]>=Mod)
c1[j][k]-=Mod;*/
}
}
int cnt=0;
for (i=A;i<=B;++i)
{
cnt=(cnt+c1[i][0])%Mod;
}
printf("%d", cnt);
fclose(stdin);
fclose(stdout);
return 0;
}