Pagini recente » Cod sursa (job #168519) | Cod sursa (job #2023744) | Monitorul de evaluare | Cod sursa (job #2286656) | Cod sursa (job #1330691)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
int D[1<<20][21];
char sir[20];
int n,p;
int main()
{
int i,j,k;
f>>sir>>p;
n = strlen(sir);
for(i=0;i<n;++i) sir[i] -= '0';
D[0][0] = 1;
for(i=0; i < (1<<n); ++i) for(j=0;j<p;++j) if(D[i][j])
{
for(k=0;k<n;++k) if( ( (1<<k) & i ) == 0) D[((1<<k)|i)][ (10*j + sir[n-k-1]) % p ] += D[i][j];
}
g<<D[(1<<n)-1][0]<<"\n";
f.close();
g.close();
return 0;
}