Cod sursa(job #1260264)
Utilizator | Data | 11 noiembrie 2014 02:23:30 | |
---|---|---|---|
Problema | Ratphu | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include<cstdio>
long long n,k,p,nr,i,j,d[1<<20][20],v[100];
FILE *f,*g;
int main(){
f=fopen("ratphu.in","r");
g=fopen("ratphu.out","w");
fscanf(f,"%lld%lld",&n,&p);
while(n!=0){
v[nr]=n%10;
n/=10;
d[1<<nr][v[nr]%p]=1;
nr++;
}
for(i=1;i<1<<nr;i++){
for(j=0;j<nr;j++){
if(!((1<<j)&i)){
for(k=0;k<p;k++){
d[(1<<j)|i][(v[j]+k*10)%p]+=d[i][k];
}
}
}
}
fprintf(g,"%lld",d[(1<<nr)-1][0]);
fclose(f);
fclose(g);
return 0;
}