Pagini recente » Rating Neamtu Ionut-Roberto (roberto2016) | Rating Groza Camelia (cameliagroza) | Rating Tripon Briana (TriponBriana) | Rating Alexandra Corduneanu (Alexandra_Corduneanu) | Cod sursa (job #1446590)
#include <fstream>
using namespace std;
ifstream in("ratphu.in");
ofstream out("ratphu.out");
long long dp[1<<18][20];
int v[19];
int main()
{
long long n;
int i=0,p,nrcif=0,k,j;
in>>n>>p;
while(n)
{
v[i]=n%10;
n=n/10;
i++;
nrcif++;
}
for(i=0;i<nrcif;++i)
dp[1<<i][v[i]%p]=1;
for(i=1;i<=(1<<nrcif)-1;++i)
for(j=0;j<nrcif;++j)
{
if((i & (1<<j)) == 0)
{
for(k=0;k<p;++k)
{
dp[i | (1<<j)][(k*10 + v[j])%p]+=dp[i][k];
}
}
}
out<<dp[(1<<nrcif)-1][0];
}