Pagini recente » Cod sursa (job #992770) | Cod sursa (job #189877) | Cod sursa (job #1894954) | Cod sursa (job #552512) | Cod sursa (job #478722)
Cod sursa(job #478722)
#include<cstdio>
#include<cstring>
using namespace std;
const char iname[]="diviz.in";
const char oname[]="diviz.out";
const int mod=30103;
const int maxn=205;
const int maxk=105;
int dp[12][maxn][maxk],n,i,j,p,c,rez,k,been[maxn],a,b,aux[maxn][maxk];
char s[maxn];
int main()
{
freopen(iname,"r",stdin);
freopen(oname,"w",stdout);
scanf("%d%d%d\n",&k,&a,&b);
fgets(s,sizeof(s),stdin);
for(n=0;s[n]&&s[n]!='\n';++n)
s[n]-='0';
for(i=0;i<n;++i)
{
memset(aux,0,sizeof(aux));
aux[1][s[i]%k]=1;
for(j=1;j<=i;++j)
for(p=0;p<k;++p)
for(c=0;c<10;++c)
{
int w=(p*10+s[i])%k;
aux[j+1][w]+=dp[c][j][p];
if(aux[j+1][w]>=mod)
aux[j+1][w]-=mod;
}
memcpy(dp[s[i]],aux,sizeof(aux));
}
for(i=a;i<=b;++i)
for(j=0;j<10;++j)
rez=(rez+dp[j][i][0])%mod;
printf("%d\n",rez);
}