Pagini recente » Cod sursa (job #2986616) | Cod sursa (job #1018386) | Cod sursa (job #2615376) | Cod sursa (job #1961322) | Cod sursa (job #1993252)
#include <bits/stdc++.h>
using namespace std;
int i, mask, n, p, rest, to;
long long dp[1 << 18][20];
char dig[20];
int main() {
ifstream cin("ratphu.in");
ofstream cout("ratphu.out");
ios_base::sync_with_stdio(0);
cin >> dig >> p; n = strlen(dig);
for(i = 0; i < n; ++i) dig[i] -= '0';
dp[0][0] = 1;
for(mask = 0; mask < (1 << n) - 1; ++mask) {
for(i = 0; i < n; ++i) {
if(mask & (1 << i)) continue;
to = mask | (1 << i);
for(rest = 0; rest < p; ++rest)
dp[to][(rest * 10 + dig[i]) % p] += dp[mask][rest];
}
}
cout << dp[(1 << n) - 1][0] << '\n';
return 0;
}