Pagini recente » Cod sursa (job #2266529) | Cod sursa (job #1263646) | Cod sursa (job #780940) | Cod sursa (job #1403693) | Cod sursa (job #1444651)
#include <fstream>
using namespace std;
long long n, p;
long long dp[1<<18][21];
int cf[19];
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++;
}
long long maxc = 1<<nc;
dp[0][0] = 1;
int cifra, i;
for (int config = 0; config < maxc; ++config)
{
for (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[maxc-1][0];
}