Pagini recente » Cod sursa (job #620519) | Cod sursa (job #1161384) | Cod sursa (job #77343) | Cod sursa (job #2035212) | Cod sursa (job #1164403)
//#include <fstream>
#include <cstdio>
#include <cstring>
using namespace std;
long long mat[1<<18][20],n;
char sir[20];
int main()
{
int lung,i,j,rest,k,num[22];
//ifstream fin("ratphu.in");
//ofstream fout("ratphu.out");
//fin>>n>>k;
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%s",&sir);
lung=strlen(sir);
for (i=0;i<lung;i++)
num[i]=sir[i]-'0';
scanf("%d",&k);
mat[0][0]=1;
for (i=0;i <(1<<lung);++i){
for (rest=0;rest<k;++rest){
if (mat[i][rest]){
for (j=0;j<lung;++j){
if (!((1<<j)&i)){
mat[i+(1<<j)][(rest*10 + num[j])%k]+=mat[i][rest];
}
}
}
}
}
//fout<<mat[(1<<lung)-1][0]<<'\n';
printf("%lld\n",mat[(1<<lung)-1][0]);
return 0;
}