Pagini recente » Cod sursa (job #202669) | Cod sursa (job #2010949) | Cod sursa (job #2012471) | Monitorul de evaluare | Cod sursa (job #1444331)
#include <cstdio>
#include <iostream>
using namespace std;
const int maxstari = (1<<18)+5;
const int dimstari = 20;
long long bst[maxstari][dimstari];
long long n;
int v[30];
int p,nr;
int main ()
{
freopen ("ratphu.in","r",stdin);
freopen ("ratphu.out","w",stdout);
cin>>n>>p;
int i,j,k;
for ( ; n; n/=10)
v[nr++]=n%10;
bst[0][0]=1;
for (i=0; i<(1<<nr); ++i)
for (j=0; j<p; ++j)
if (bst[i][j])
for (k=0; k<nr; ++k)
if (!(i&(1<<k)))
bst[i|(1<<k)][(j*10+v[k])%p]+=bst[i][j];
cout<<bst[(1<<nr)-1][0];
}