Pagini recente » Cod sursa (job #1793358) | Cod sursa (job #1034600) | Cod sursa (job #1533963) | Cod sursa (job #1063442) | Cod sursa (job #750442)
Cod sursa(job #750442)
#include<fstream>
using namespace std;
long long n;
int p,nrcif=-1,cif[20],mask[20];
long long nr[263000][20];
int main()
{
int i,j,conf,lim;
ifstream fin("ratphu.in");
fin>>n>>p;
fin.close();
while(n)
{
cif[++nrcif]=n%10;
n/=10;
}
for(i=0;i<=nrcif;i++)
mask[i]=(1<<i);
nr[0][0]=1;
lim=(1<<(nrcif+1));
for(conf=0;conf<lim;conf++)
{
for(i=0;i<p;i++)
{
if(nr[conf][i]==0)
continue;
for(j=0;j<=nrcif;j++)
{
if(!(conf&mask[j]))
{
nr[conf|mask[j]][(i*10+cif[j])%p]+=nr[conf][i];
}
}
}
}
ofstream fout("ratphu.out");
fout<<nr[lim-1][0]<<"\n";
fout.close();
return 0;
}