Pagini recente » Cod sursa (job #1858070) | Cod sursa (job #2862123) | Cod sursa (job #2635066) | Cod sursa (job #491445) | Cod sursa (job #1264018)
#include<fstream>
#define FOR(a,b,c) for(register int a=b;a<=c;++a)
#define N 1<<20
#define P 20
#define SQ 350
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
/*int dx[]={0,0,0,1,-1};
int dy[]={0,1,-1,0,0};*/
int cif[P],p,lim,t;
long long n,D[P][N];
int main ()
{
f>>n>>p;
t=-1;
while(n)
{
cif[++t]=n%10;
n/=10;
}
D[0][0]=1;
lim=1<<(t+1);
--lim;
FOR(i,0,lim)
FOR(r,0,p-1)
if(D[r][i])
FOR(j,0,t)
if(!(i&(1<<j)))
D[(r*10+cif[j])%p][i|(1<<j)]+=D[r][i];
g<<D[0][lim];
return 0;
}
//Look at me! Look at me! The monster inside me has grown this big!