Pagini recente » Cod sursa (job #879037) | Cod sursa (job #1959063) | Cod sursa (job #1299630) | Cod sursa (job #16907) | Cod sursa (job #467516)
Cod sursa(job #467516)
#include <algorithm>
using namespace std;
#define MAX (1<<18)+5
#define DIM 20
long long bst[MAX][DIM];
long long n;
int v[DIM];
int p,nr;
void solve ()
{
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];
printf ("%lld",bst[(1<<nr)-1][0]);
}
int main ()
{
freopen ("ratphu.in","r",stdin);
freopen ("ratphu.out","w",stdout);
scanf ("%lld%d",&n,&p);
solve ();
return 0;
}