Pagini recente » Cod sursa (job #3296236) | Cod sursa (job #655778) | Cod sursa (job #2591099) | Cod sursa (job #1100810) | Cod sursa (job #467416)
Cod sursa(job #467416)
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
#define file_in "ratphu.in"
#define file_out "ratphu.out"
#define nmax 100
int v[nmax];
long long sol,n;
long long P;
int nr;
char ch;
long long d[1<<18][20];
void citire()
{
int i,l;
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
nr=0;
scanf("%lld %lld",&n, &P);
while(n)
{
v[nr]=n%10;
n/=10;
nr++;
}
int st=1,dr=n,aux;
while(st<=dr)
{
aux=v[st];
v[st]=v[dr];
v[dr]=aux;
}
}
void solve()
{
int i,j,k;
d[0][0]=1;
for (i=0;i<(1<<nr);++i)
for (j=0;j<P;++j)
if (d[i][j])
for (k=0;k<nr;++k)
if ((i&(1<<k))==0)
d[i|(1<<k)][(j*10+v[k])%P]+=d[i][j];
printf("%lld\n", d[(1<<nr)-1][0]);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}