Pagini recente » Cod sursa (job #1152941) | Cod sursa (job #425628) | Cod sursa (job #1018678) | Cod sursa (job #1569876) | Cod sursa (job #473433)
Cod sursa(job #473433)
// infoarena -problema ratphu
// @author: Mircea Dima
#include <cstdio>
#include <cstring>
int a[20];
int n;
int P;
long long dp[(1 << 18) + 1][20];
int main ()
{
freopen ("ratphu.in", "r", stdin);
freopen ("ratphu.out", "w", stdout);
long long val;
scanf ("%lld %d", &val, &P);
while (val)
a[n++] = static_cast <int> (val % 10),
val /= 10;
int i, j, k;
dp[0][0] = 1;
for (i = 0; i < (1 << n); ++i)
for (j = 0; j < P; ++j)
for (k = 0; k < n; ++k)
if ((i & (1 << k)) == 0)
dp[i | (1 << k)][(j * 10 + a[k]) % P] += dp[i][j];
printf ("%lld\n", dp[(1 << n) - 1][0]);
return 0;
}