Pagini recente » Cod sursa (job #1783329) | Cod sursa (job #2002009) | Cod sursa (job #646959) | Cod sursa (job #805840) | Cod sursa (job #790140)
Cod sursa(job #790140)
#include <fstream>
#include <cstring>
using namespace std;
char n[20];
int p, lgt, aux;
long long dp[(1 << 18)][20];
int main()
{
ifstream in("ratphu.in"); in>>n>>p; in.close();
lgt = strlen(n);
for(int i = 0; i < lgt; i++)
{
n[i] -= '0';
dp[(1 << i)][n[i] % p]++;
}
for(int conf = 1; conf < (1 << lgt); conf++)
{
if(!(conf & (conf - 1))) continue;
for(int i = 0; i < lgt; i++)
if(conf & (1 << i))
{
aux = conf ^ (1 << i);
for(int r = 0; r < p; r++)
dp[conf][(r * 10 + n[i]) % p] += dp[aux][r];
}
}
ofstream out("ratphu.out"); out<<dp[(1 << lgt) - 1][0]; out.close();
return 0;
}