Pagini recente » Cod sursa (job #1198189) | Cod sursa (job #1188212) | Cod sursa (job #1523334) | Cod sursa (job #722161) | Cod sursa (job #1428426)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
long long n, d[263000][21], l;
int p, cif[21], nrcif;
int main()
{
fin >> n >> p;
while (n)
{
cif[nrcif++] = n % 10;
n /= 10;
}
d[0][0] = 1;
l = (1 << nrcif);
for(long long i = 0; i < l; ++i)
{
for (int j = 0; j < nrcif; ++j)
{
if ((i & (1 << j)) == 0)
{
for (int k = 0; k < p; ++k)
{
d[i | (1 << j)][(k * 10 + cif[j]) % p] += d[i][k];
}
}
}
}
fout << d[l - 1][0];
return 0;
}