Pagini recente » Cod sursa (job #52249) | Cod sursa (job #2369961) | Cod sursa (job #828332) | Cod sursa (job #1323531) | Cod sursa (job #45366)
Cod sursa(job #45366)
#include <stdio.h>
#include <string.h>
#define maxN 210
#define maxK 110
#define cmod 30103
int n,k,a,b, res, vmk[maxN],kkk[maxN];
char vec[maxN];
int din[maxN][maxK], dinc[10][maxN][maxK];
void stab(int&x){while(x>=k)x-=k;}
void inputFunc(){
FILE*fi=fopen("divz.in","r");
fscanf(fi,"%d %d %d %s",&k,&a,&b,vec);
for(n=0;vec[n];n++){
vec[n]-='0';vmk[n]=vec[n];stab(vmk[n]);
}
for(int i=0;i<k;i++)kkk[i]=i*10,stab(kkk[i]);
fclose(fi);
}
void outputFunc(){
FILE*fi=fopen("divz.out","w");
fprintf(fi,"%d",res);
fclose(fi);
}
int main(){
return 0;
inputFunc();
din[0][0]=1;
for(int i=0;i<n;i++){
int t=0;if(!vec[i])t=1;
for(int j=i+1;j>t;j--){
for(int l=0;l<k;l++)if(din[j-1][l]){
int d;
d=kkk[l]+vmk[i];stab(d);
din[j][d]+=din[j-1][l]-dinc[vec[i]][j][d];
dinc[vec[i]][j][d]+=din[j-1][l];
}
}
}
for(int i=a;i<=b;i++){res+=din[i][0];if(res>=cmod)res-=cmod;}
outputFunc();
return 0;
}