Pagini recente » Cod sursa (job #2426184) | Cod sursa (job #1940287) | Cod sursa (job #670640) | Cod sursa (job #461735) | Cod sursa (job #1022701)
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
long long d[1 << 20][20];
char s[30];
int cifre[30];
ifstream in("ratphu.in");
ofstream out("ratphu.out");
int main()
{
int i, j, k, p, nr, now;
in >> s;
nr = strlen(s);
for(i = 0; i < nr; ++i)
cifre[i] = s[i] - '0';
in >> p;
d[0][0] = 1;
for(i = 0; i < (1 << nr); ++i)
for(j = 0; j < p; ++j)
if(d[i][j])
for(k = 0; k < nr; ++k)
if(!((1 << k) & i)){
now = j * 10 + cifre[k];
while(now >= p)
now -= p;
d[i | (1 << k)][now] += d[i][j];
}
out << d[(1 << nr) - 1][0];
return 0;
}