Cod sursa(job #1904434)
Utilizator | Data | 5 martie 2017 15:41:28 | |
---|---|---|---|
Problema | Ratphu | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Teme Pregatire ACM Unibuc 2014, Anul II | Marime | 0.37 kb |
#include<stdio.h>
long long n,m[300000][23];
int p,v[23],j,o,i,e;
int main(){
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%lld%lld",&n,&p);
for(;n;n/=10)v[e++]=n%10;
m[0][0]=1;
for(i=1;i<(1<<e);i++) for(j=0;j<p;j++)for(o=0;o<e;o++)
if(i&(1<<o))m[i][(j*10+v[o])%p]+=m[i-(1<<o)][j];
printf("%lld",m[(1<<e)-1][0]);return 0;
}