Pagini recente » Cod sursa (job #1149940) | Cod sursa (job #1292113) | Cod sursa (job #2768139) | Cod sursa (job #534238) | Cod sursa (job #1433896)
#include <fstream>
#include <cstring>
#include <cstdio>
using namespace std;
long long dp[270000][20],c[20],r,k,i,j,p,n,l,x;
char s[20];
int main ()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%s",&s);
for (i=0;i<strlen(s);++i)
c[i+1]=s[i]-'0';
scanf("%ld",&p);
n=strlen(s);
l=(1u<<n)-1;
dp[0][0]=1;
for (i=0;i<=l;++i)
for (j=0;j<p;++j)
if (dp[i][j]!=0)
for (k=0;k<n;++k)
if (!(i&(1u<<k))) {
x=i|(1u<<k);
r=j*10+c[k+1];
while (r>=p) r-=p;
dp[x][r]+=dp[i][j];
}
printf("%lld",dp[l][0]);
fclose(stdin);
fclose(stdout);
return 0;
}