Pagini recente » Cod sursa (job #2547565) | Cod sursa (job #247793) | Cod sursa (job #783315) | Cod sursa (job #192142) | Cod sursa (job #1473121)
#include <fstream>
using namespace std;
ifstream f("ratphu.in"); ofstream g("ratphu.out");
long long n,n1,dp[1<<18][20];// numarul de posibilitati luand configuratia 'i', sa am restul 0
int cif[20];
int main()
{ int i=0,q,p,a,k,j;
f>>n>>p;
n1=n;
while(n1) {cif[i]=n1%10; n1/=10;i++;}
q=i;
for(k=0;k<q;++k)
dp[1<<k][cif[k]%p]=1;
for(i=1;i<=(1<<q)-1;++i)
for(j=0;j<q;++j)
{
if((i&(1<<j))==0) {
for(k=0;k<p;++k)
{
dp[i|(1<<j)][(k*10+cif[j])%p]+=dp[i][k];
}
}
}
g<<dp[(1<<q)-1][0]; g.close(); return 0;
}