Pagini recente » Cod sursa (job #3257311) | Cod sursa (job #340155) | Cod sursa (job #820695) | Cod sursa (job #932409) | Cod sursa (job #3217108)
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
ifstream fin ("diviz.in");
ofstream fout("diviz.out");
int D[202][101];
int n,z,k,sol,l,a,b,j,i,V[202],viz[202][102][10];
const int MOD=30103;
string s;
int main()
{
fin>>k>>a>>b;
fin>>s;
for(i=0;i<s.size();i++)
V[i+1]=s[i]-'0';
D[0][0]=1;
n=s.size();
for(i=1;i<=n;i++)
{
for(l=i-1;l>=0;l--)
for(j=k-1;j>=0;j--)
{
if(l==0&&j==0&&V[i]==0)
continue;
//if(D[l][j]&&l==2)
//fout<<j<<" "<<D[l][j]<<" "<<viz[l][j][V[i]]<<"\n";
if(D[l][j])
{
D[l+1][(j*10+V[i])%k]=(D[l+1][(j*10+V[i])%k]+D[l][j]-viz[l][j][V[i]])%MOD;
if(D[l+1][(j*10+V[i])%k]<0)
D[l+1][(j*10+V[i])%k]+=MOD;
viz[l][j][V[i]]++;
viz[l][j][V[i]]%=MOD;
}
}
//fout<<D[3][0]<<"\n";
}
sol=0;
for(i=a;i<=b;i++)
{
//fout<<D[i][0]<<"\n";
sol=(sol+D[i][0])%MOD;
}
fout<<sol;
return 0;
}