Pagini recente » Cod sursa (job #1145251) | Cod sursa (job #2241031) | Cod sursa (job #373933) | Cod sursa (job #1469134) | Cod sursa (job #2165863)
#include<bits/stdc++.h>
#define mod 30103
using namespace std;
int k,a,b,n,first[15][205],dp[205][2][105],line,sol;
char s[205];
int main()
{
freopen("diviz.in","r",stdin);
freopen("diviz.out","w",stdout);
scanf("%d%d%d",&k,&a,&b);
scanf("\n");
scanf("%s",s+1);
n=strlen(s+1);
for(int cif=0;cif<=9;cif++)
for(int i=0;i<=n;i++)
for(int j=i+1;j<=n && !first[cif][i];j++)
if(s[j]==cif+'0')
{
first[cif][i]=j;
break;
}
for(int i=1;i<=9;i++)
dp[first[i][0]][1][i%k]=1;
line=1;
for(int j=1;j<b;j++,line^=1)
{
for(int i=1;i<=n;i++)
for(int r=0;r<k;r++)
dp[i][!line][r]=0;
for(int i=j;i<=n;i++)
{
for(int r=0;r<k;r++)
{
if(!r && j>=a && j<=b)
sol=(sol+dp[i][line][r])%mod;
for(int cif=0;cif<=9;cif++)
{
dp[first[cif][i]][!line][(r*10+cif)%k]+=dp[i][line][r];
dp[first[cif][i]][!line][(r*10+cif)%k]%=mod;
}
}
}
}
printf("%d\n",sol);
return 0;
}