Pagini recente » Cod sursa (job #1594864) | Cod sursa (job #387664) | Cod sursa (job #1236469) | Cod sursa (job #875943) | Cod sursa (job #478575)
Cod sursa(job #478575)
#include<cstdio>
#include<cstring>
int i,j,n,p,m,put;
char c[30];
long long a[300000][25];
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%s",c);
scanf("%d",&p);
n=strlen(c);
if(c[n]=='\n') --n;
for(i=0;i<n;++i) c[i]-='0';
for(i=0;(1<<i)<(1<<n);++i)
a[1<<i][int(c[i])%p]=1;
m=1<<n;
for(i=1;i<m;++i)
for(j=1,put=0;j<m;++put,j<<=1)
if(!(i&j))
for(int k=0;k<p;++k) a[i+j][ (k*10+c[put])%p ]+=a[i][k];
printf("%lld\n",a[m-1][0]);
fclose(stdin);
fclose(stdout);
return 0;
}