Pagini recente » Cod sursa (job #387127) | Cod sursa (job #2739138) | Cod sursa (job #1482908) | Cod sursa (job #2952702) | Cod sursa (job #1445275)
#include <fstream>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
int p,v[18],t,mod[401];
long long dp[1<<18][20],n;
int main()
{
fin >> n >> p;
while (n)
{
v[t++] = n%10;
n /= 10;
}
dp[0][0] = 1;
for (int i = 0; i <= 400; ++i)
{
mod[i] = i%p;
}
for (int i = 0; i < (1<<t); ++i)
{
for (int j = 0; j < p; ++j)
{
if (dp[i][j] == 0)
continue;
for (int k = 0; k < t; ++k)
{
if (!((i>>k)&1))
{
dp[i|(1<<k)][mod[j*10+v[k]]] += dp[i][j];
}
}
}
}
fout << dp[(1<<t)-1][0];
}