Pagini recente » Cod sursa (job #2748711) | Cod sursa (job #315357) | Cod sursa (job #1415489) | Cod sursa (job #1437193) | Cod sursa (job #1318520)
#include<bits/stdc++.h>
using namespace std;
int v[30], d[(1 << 21)][25];
int main()
{
FILE *fin = fopen("ratphu.in", "r");
FILE *fout = fopen("ratphu.out", "w");
long long n, p;
fscanf(fin, "%lld %lld", &n, &p);
int nr = 0;
while( n != 0 ) {
v[nr] = n % 10;
nr++;
n /= 10;
}
d[0][0]=1;
long long lim = ( 1 << nr );
for( int i = 0; i < lim; ++i)
for(int k = 0; k < p; ++k)
for( int j = 0; j < nr; ++j )
if(( i & (1 << j)) == 0)
d[i | (1 << j)][(k * 10 + v[j]) % p] += d[i][k];
fprintf(fout, "%d\n", d[(1 << nr) - 1][0]);
}