Pagini recente » Cod sursa (job #2286828) | Cod sursa (job #2346569) | Cod sursa (job #1670626) | Cod sursa (job #1665767) | Cod sursa (job #2507664)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
int n;
long long nr;
int p;
long long dp[(1<<18)+5][21];
int c[21];
int main()
{
fin >> nr >> p;
while (nr)
{
c[n++] = nr % 10;
nr /= 10;
}
dp[0][0] = 1;
for (int stare = 0; stare < (1 << n)-1; stare++)
{
for (int i = 0; i < n; i++)
{
if (stare & (1 << i))
continue;
for (int rest = 0; rest < p; rest++)
{
dp[stare + (1 << i)][(10 * rest + c[i]) % p] += dp[stare][rest];
}
}
}
fout << dp[(1<<n) - 1][0];
return 0;
}