Pagini recente » Cod sursa (job #148043) | Cod sursa (job #288364) | Istoria paginii utilizator/imgelu | Diferente pentru home intre reviziile 902 si 127 | Cod sursa (job #1276087)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
char s[24];
int n,r,p,a[24],P[24],D[1<<19][24];
int main()
{
int i,j,k;
fin>>s>>p;
n=strlen(s);
for (i=0;i<n;++i)
a[i]=s[i]-'0';
for (i=2,P[1]=1;i<=n;++i)
P[i]=P[i-1]*10%p;
D[0][0]=1;
for (i=1;i<(1<<n);++i)
for (k=0;k<n;++k)
if (i&(1<<k))
for (j=0;j<p;++j)
{
r=j*10+a[k];
while (r>=p) r-=p;
D[i][r]+=D[i-(1<<k)][j];
}
fout<<D[(1<<n)-1][0]<<"\n";
return 0;
}