Pagini recente » Cod sursa (job #902883) | Cod sursa (job #242084) | Cod sursa (job #2382583) | Cod sursa (job #664929) | Cod sursa (job #1804133)
#include <fstream>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
typedef long long i64;
const int cmax= 18;
const int pmax= 20;
int v[cmax];
i64 d[1<<cmax][pmax];
int main( ) {
i64 n;
int p, k;
fin>>n>>p;
for ( k= -1; n>0; n/= 10 ) {
v[++k]= n%10;
}
d[0][0]= 1;
for ( int i= 0; i<(1<<(k+1)); ++i ) {
for ( int j= 0; j<=k; ++j ) {
if ( (i&(1<<j))==0 ) {
for ( int l= 0; l<p; ++l ) {
d[i+(1<<j)][(l*10+v[j])%p]+= d[i][l];
}
}
}
}
fout<<d[(1<<(k+1))-1][0]<<"\n";
return 0;
}