Pagini recente » Cod sursa (job #222069) | template/preoni-2006 | Cod sursa (job #1271187) | Cod sursa (job #736053) | Cod sursa (job #1444032)
#include <fstream>
using namespace std;
#define maxc 18
#define maxr 22
long n, r, i, j, k, pt, v[maxc+10], conf[maxc+10];
long long d[(1<<maxc)+100][maxr];
long long nr;
int main()
{
ifstream in("ratphu.in");
ofstream out("ratphu.out");
in>>nr>>r;
while(nr>0)
{
v[++v[0]]=nr%10;
nr=nr/10;
}
n=v[0];
d[0][0]=1;
for(i=0; i<(1<<n)-1; ++i)
{
pt=1;
for(j=0; j<n; ++j)
{
conf[j]=((i>>j)&1);
if(conf[j])
pt=(pt*10)%r;
}
for(j=0; j<r; ++j)
{
if(d[i][j]==0) continue;
for(k=0; k<n; k++)
if(conf[k]==0)
d[i|(1<<k)][(j+(pt*v[k+1]))%r]+=d[i][j];
}
}
out<<d[(1<<n)-1][0];
}