Pagini recente » Cod sursa (job #363180) | Cod sursa (job #2603465) | Cod sursa (job #1989227) | Cod sursa (job #2517960) | Cod sursa (job #2864881)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
char s[20];
int a[20],p;
long long dp[1<<20][20];
int main()
{
fin>>s>>p;
for(int i=0; s[i]; i++) a[i]=s[i]-'0';
int n=strlen(s);
for(int bit=0; bit<n; bit++)
dp[1<<bit][a[bit]%p]=1;
for(int mask=0; mask<(1<<n); mask++)
{
for(int bit=0; bit<n; bit++)
{
if(((mask>>bit)&1)==0)
{
int newMask=mask|(1<<bit);
for(int r=0; r<p; r++)
dp[newMask][(r*10+a[bit])%p]+=dp[mask][r];
}
}
}
fout<<dp[(1<<n)-1][0]<<"\n";
return 0;
}