Pagini recente » Cod sursa (job #2666493) | Cod sursa (job #1670652) | Cod sursa (job #1131061) | Cod sursa (job #138251) | Cod sursa (job #790223)
Cod sursa(job #790223)
#include<fstream>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
int c[20],nr,p;
long long n,a[1<<20][20];
int main()
{
fin>>n>>p;
int i,j,k;
while(n)
{
c[nr++]=n%10;
n=n/10;
}
int lim=(1<<nr);
for(i=0;i<nr;++i)
++a[1<<i][c[i]%p];
for(i=1;i<lim;++i)
{
for(j=0;j<p;++j)
{
if(a[i][j]!=0)
{
for(k=0;k<nr;++k)
if(!(i&(1<<k)))
{
int h;
h=j*10+c[k];
while(h>=p)
h-=p;
a[i|(1<<k)][h]+=a[i][j];
}
}
}
}
fout<<a[lim-1][0];
return 0;
}