Pagini recente » Cod sursa (job #1999581) | Cod sursa (job #2212150) | Cod sursa (job #191560) | Cod sursa (job #3219931) | Cod sursa (job #2439789)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
long long dp[1<<18][20];
vector < int > cifre;
int main()
{
long long n;
int p;
f >> n >> p;
while(n)
{
cifre.push_back(n % 10);
n /= 10;
}
dp[0][0] = 1;
for (int i = 0; i < (1 << cifre.size()); ++ i)
for (int j = 0; j < p; ++ j)
if (dp[i][j])
for (int bit = 0; bit < cifre.size(); ++ bit)
if ((i & (1 << bit)) == 0)
dp[i ^ (1 << bit)][(j * 10 + cifre[bit]) % p] += dp[i][j];
g << dp[(1 << cifre.size()) - 1][0];
}