Pagini recente » Cod sursa (job #348672) | Cod sursa (job #1681261) | Cod sursa (job #2522895) | Cod sursa (job #972772) | Cod sursa (job #1739184)
#include <iostream>
#include<fstream>
using namespace std;
int i,j,l,k,p,pu[20];
long long modes[(1<<18)][25],n,v[19];
int main()
{
ifstream f("ratphu.in");
ofstream g("ratphu.out");
f>>n>>p;
while(n!=0)
{
v[k]=n%10;
k++;
n/=10;
}
modes[0][0]=1;
pu[0]=1;
for(i=1;i<=18;i++) pu[i]=2*pu[i-1];
for(i=0;i<pu[k];i++)
{
for(j=0;j<p;j++)
{
if(modes[i][j]!=0)
for(l=0;l<k;l++)
if((i&pu[l])==0)
{
modes[i+pu[l]][(j*10+v[l])%p]+=modes[i][j];
}
}
}
g<<modes[(1<<k)-1][0];
return 0;
}