Pagini recente » Cod sursa (job #2625906) | Cod sursa (job #2904480) | Cod sursa (job #1465995) | Cod sursa (job #2904718) | Cod sursa (job #1584868)
#include <stdio.h>
#include <cstring>
#define mod 30103
using namespace std;
int l,n,k,a,b;
int t[210],fr[10];
char s[210];
int dp[2][110][210];
int main()
{
freopen("diviz.in","r",stdin);
freopen("diviz.out","w",stdout);
scanf("%d %d %d ",&k,&a,&b);
gets(s+1); n=strlen(s+1);
for (int i=1;i<=n;i++) t[i]=s[i]-48;
l=1; dp[0][0][0]=1;
for (int i=1;i<=n;i++) {
memset(dp[l],0,sizeof(dp[l]));
for (int j=0;j<i;j++) {
if (j==0 && fr[t[i]]==1) continue;
for (int p=0;p<k;p++) {
if (t[i]>0) dp[l][p][j]=(dp[1-l][p][j]+dp[l][p][j])%mod;
dp[l][(p*10+t[i])%k][j+1]=(dp[l][(p*10+t[i])%k][j+1]+dp[1-l][p][j])%mod;
fr[t[i]]=1;
}
}
l=1-l;
}
int sol=0;
for (int i=a;i<=b;i++) sol=(sol+dp[1-l][0][i])%mod;
printf("%d",sol);
return 0;
}