Cod sursa(job #466042)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 25 iunie 2010 20:46:37
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include <cstdio>

typedef long long i64;

i64 din[1<<18][20];

int main()
{
	i64 N;
	int n,i,j,r,P,c[22];
	freopen("ratphu.in","r",stdin);
	scanf("%lld %d",&N,&P);
	for (n=0;N>0;N/=10) c[n++]=N%10;
	
	din[0][0]=1;
	for (i=0;i < (1<<n);++i)
	 for (r=0;r<P;++r)
	  if (din[i][r])
	   for (j=0;j<n;++j)
	     if (!((1<<j)&i))
	       din[i+(1<<j)][(r*10 + c[j])%P]+=din[i][r];
	       
	freopen("ratphu.out","w",stdout);
	printf("%lld\n",din[(1<<n)-1][0]); 
	
	return 0;
}