Pagini recente » Cod sursa (job #1425347) | Cod sursa (job #3258028) | Cod sursa (job #1220508) | Cod sursa (job #730115) | Cod sursa (job #1473113)
#include<fstream>
using namespace std;
ifstream f("ratphu.in"); ofstream g("ratphu.out");
int p,i,j,k,s,aux,c[20];
long long n,np[1<<18][20]; // numarul de posibilitati luand configuratia 'i', sa am restul 0
int main()
{ f>>n>>p;
while(n) {c[s++]=n%10; n/=10;}
for(i=0;i<s/2;i++) {aux=c[i]; c[i]=c[s-i-1]; c[s-i-1]=aux;}
np[0][0]=1;
for(i=0;i<(1<<s);++i)
for(j=0;j<p;++j)
if(np[i][j])
for(k=0;k<s;++k)
if((i&(1<<k))==0)
np[i|(1<<k)][(j*10+c[k])%p]+=np[i][j];
g<<np[(1<<s)-1][0]<<'\n'; g.close(); return 0;
}