Pagini recente » Cod sursa (job #1566817) | Cod sursa (job #817635) | Cod sursa (job #3238396) | Cod sursa (job #1574073) | Cod sursa (job #2256185)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream in("ratphu.in");
ofstream out("ratphu.out");
const int NMAX = 18;
const int PMAX = 20;
ll dp[1 << NMAX][PMAX];
string s;
int main() {
int p;
in >> s >> p;
int n = s.size();
dp[0][0] = 1;
for(int mask = 0; mask < (1 << n); mask ++) {
for(int i = 0; i < n; i ++) {
for(int r = 0; r < p; r ++) {
if((mask & (1 << i)) == 0) {
int newmask = mask ^ (1 << i);
dp[newmask][(r * 10 + (s[i] - '0')) % p] += dp[mask][r];
}
}
}
}
out << dp[(1 << n) - 1][0];
return 0;
}