Pagini recente » Cod sursa (job #425751) | Cod sursa (job #809958) | Cod sursa (job #1840731) | Cod sursa (job #1466902) | Cod sursa (job #1892144)
#include <bits/stdc++.h>
using namespace std;
int v[19];
long long dp[524300][20];
int rest[300];
int main()
{
ifstream fin ("ratphu.in");
ofstream fout ("ratphu.out");
long long n;
int p;
fin >> n >> p;
int nr_cifre=0;
for (int i = 0; i<300; ++i)
rest[i] = i%p;
while (n)
{
v[nr_cifre]=n%10;
++nr_cifre;
n/=10;
}
dp[0][0]=1;
int m = (1<<(nr_cifre))-1;
for (int i = 0; i<m; ++i)
{
for (int j = 0; j<p; ++j)
{
if (dp[i][j])
{
for (int k=0; k<nr_cifre; ++k)
{
if ((i&(1<<k))==0)
{
dp[i|(1<<k)][rest[j*10+v[k]]]+=dp[i][j];
}
}
}
}
}
fout << dp[m][0];
return 0;
}