Pagini recente » Cod sursa (job #1683468) | Cod sursa (job #1834379) | Cod sursa (job #1254228) | Cod sursa (job #1805218) | Cod sursa (job #2118725)
#include <fstream>
#include <string.h>
using namespace std;
ifstream f("diviz.in");
ofstream g("diviz.out");
int k,a,b,i,j,l,p,nr,sum,ind,x[2][201][101],y[201][10];
char s[201];
int main()
{
f>>k>>a>>b;
f>>s;nr=strlen(s);
for(i=nr-1;i>=0;i--){
for(j=0;j<=9;j++)
y[i][j]=y[i+1][j];
y[i][s[i]-'0']=i+1;
}
if(a==1&&y[0][0]!=0)
sum++;
for(i=1;i<=9;i++)
if(y[0][i]!=0){
if(a==1&&i%k==0)
sum++;
x[0][y[0][i]][i%k]=1;
}
ind=1;
for(p=2;p<=b;p++){
for(i=p-1;i<=nr;i++)
for(j=0;j<k;j++)
if(x[1-ind][i][j]!=0){
for(l=0;l<=9;l++)
if(y[i][l]!=0)
x[ind][y[i][l]][(j*10+l)%k]=(x[ind][y[i][l]][(j*10+l)%k]+x[1-ind][i][j])%30103;
x[1-ind][i][j]=0;
}
if(p>=a){
for(i=p;i<=nr;i++)
sum=(sum+x[ind][i][0])%30103;
}
ind=1-ind;
}
g<<sum;
return 0;
}