Pagini recente » Cod sursa (job #2791979) | Cod sursa (job #2693699) | Cod sursa (job #125142) | Cod sursa (job #1016335) | Cod sursa (job #741234)
Cod sursa(job #741234)
#include<cstdio>
#include<cstring>
using namespace std;
long long dp[300000][20];
char s[20];
long c[20];
int main () {
long p,n,lim,i,j,k,l,conf,r;
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%s",&s);
l=strlen(s);
for (i=0;i<l;i++)
c[i+1]=s[i]-'0';
scanf("%ld",&p);
n=l;
lim=(1u<<n)-1;
dp[0][0]=1;
for (i=0;i<=lim;i++)
for (j=0;j<p;j++)
if (dp[i][j])
for (k=0;k<n;k++)
if (!(i&(1u<<k))) {
conf=i|(1u<<k);
r=j*10+c[k+1];
while (r>=p)
r-=p;
dp[conf][r]+=dp[i][j];
}
printf("%lld\n",dp[lim][0]);
return 0;
}