Cod sursa(job #468482)
Utilizator | Antoanela Siminiuc antoanela | Data | 3 iulie 2010 21:51:36 |
---|---|---|---|
Problema | Ratphu | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.41 kb |
#include <cstdio>
long long n, i, l, v[300000][23];
int p, c[23];
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%lld %d",&n,&p);
int j, k;
for (; n; n/=10)
c[l++]=n%10;
v[0][0]=1;
for (i=1; i<(1<<l); i++)
for (j=0; j<p; j++)
for (k=0; k<l; k++)
if(i & (1<<k))
v[i][(j*10+c[k])%p]+=v[i-(1<<k)][j];
printf("%lld\n",v[(1<<l)-1][0]);
}