Pagini recente » Cod sursa (job #1057485) | Cod sursa (job #1134511) | Cod sursa (job #61218) | Cod sursa (job #1134341) | Cod sursa (job #1444609)
#include <iostream>
#include <fstream>
using namespace std;
#define maxp 21
#define mc 19
long long n, p;
long long dp[1<<mc][maxp];
int cf[mc];
int main()
{
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
fin>>n>>p;
int nc = 0;
while (n)
{
cf[nc] = n%10;
n/=10;
nc++;
}
dp[0][0] = 1;
for (int config = 0; config < (1<<(nc+1)); config++)
for (int cifra = 0; cifra < nc; cifra++)
if ((config & (1<<cifra)) == 0)
{
for (int i = 0; i < p; i++) //fiecare rest
dp[config | (1<<cifra)][(i*10+cf[cifra])%p] +=dp[config][i];
}
fout<<dp[(1<<(nc))-1][0]<<'\n';
}