Pagini recente » Cod sursa (job #3116) | Cod sursa (job #2068922) | Cod sursa (job #1950867) | Cod sursa (job #2027282) | Cod sursa (job #1426757)
#include <fstream>
#define maxn (1 << 18) + 5
using namespace std;
ifstream in ("ratphu.in");
ofstream out ("ratphu.out");
string s;
int p;
long long d[maxn][25];
int main ()
{
in >> s >> p;
int lg = 1 << s.size();
int dim = s.size();
for (int i = 0; i < dim; i++)
{
s[i] = (s[i] - '0') % p;
d[1 << i][s[i]] = 1;
}
for (int i = 0; i < lg; i++)
for (int j = 0; j < dim; j++)
if ( (i & (1 << j) ) == 0)
for(int k = 0; k < p; k++)
d[i | (1 << j)][(k * 10 + s[j]) % p] += d[i][k];
out << d[lg - 1][0];
return 0;
}