Pagini recente » Cod sursa (job #2536472) | Cod sursa (job #2378701) | Cod sursa (job #1421145) | Cod sursa (job #2764745) | Cod sursa (job #2749077)
#include <iostream>
#include<fstream>
#include<algorithm>
#define MAX 1<<18
using namespace std;
int p,cifre[25],nrcifre;
long long c[MAX][21],n;
void citire()
{
ifstream fin("ratphu.in");
fin>>n>>p;
fin.close();
long long nr=n;
while(nr > 0)
{
cifre[nrcifre++]=nr%10;
nr/=10;
}
}
void solve()
{
c[0][0]=1;
for(int i=0; i<(1<<nrcifre);++i)
{
for(int cif=0;cif < nrcifre;++cif)
{
if((i & (1<<cif))==0)
{
for(int r=0; r < p; ++r)
{
c[i | (1<<cif)][(r*10 + cifre[cif])%p]+=c[i][r];
}
}
}
}
}
int main()
{
citire();
solve();
ofstream fout("ratphu.out");
fout<<c[(1<<nrcifre) -1][0]<<"\n";
fout.close();
return 0;
}