Pagini recente » Cod sursa (job #2029556) | Cod sursa (job #2484312) | Cod sursa (job #2067973) | Cod sursa (job #111585) | Cod sursa (job #1424071)
#include <stdio.h>
#define MAXN 18
#define MAXK 20
int v[MAXN];
long long d[1<<MAXN][MAXK];
int main(){
int n, k, i, j, r;
char ch;
FILE *fin, *fout;
fin=fopen("ratphu.in", "r");
fout=fopen("ratphu.out", "w");
ch=fgetc(fin);
n=0;
while(ch!=' '){
v[n++]=ch-'0';
ch=fgetc(fin);
}
fscanf(fin, "%d", &k);
d[0][0]=1;
for(i=0; i<(1<<n); i++){
for(r=0; r<k; r++){
if(d[i][r]!=0){
for(j=0; j<n; j++){
if((i&(1<<j))==0){
d[i|(1<<j)][(r*10+v[j])%k]+=d[i][r];
}
}
}
}
}
fprintf(fout, "%lld\n", d[(1<<n)-1][0]);
fclose(fin);
fclose(fout);
return 0;
}