Pagini recente » Cod sursa (job #1768160) | Cod sursa (job #1511630) | Cod sursa (job #1410737) | Cod sursa (job #2693848) | Cod sursa (job #1721490)
#include <bits/stdc++.h>
#define maxN 20
using namespace std;
int i,j,v[maxN],nrc,p,maxC,mask;
long long dp[1<<19][maxN],n;
char s[19];
inline int modu(int x)
{
while(x>=p)
x-=p;
return x;
}
int main()
{
ifstream f("ratphu.in");
ofstream g("ratphu.out");
f>>s>>p;
n=strlen(s);
dp[0][0]=1;
for(mask=0;mask<(1<<n);mask++)
{
for(j=0;j<p;j++)
{
if(dp[mask][j]==0)
continue;
for(i=0;i<n;i++)
{
if((mask&(1<<i)))
continue;
dp[mask+(1<<i)][modu(j*10+(s[i]-'0'))]+=dp[mask][j];
}
}
}
g<<dp[(1<<n)-1][0];
return 0;
}