Pagini recente » Cod sursa (job #2915314) | Cod sursa (job #1153350) | Cod sursa (job #314814) | Cod sursa (job #514718) | Cod sursa (job #1946893)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
const int Dim = (1 << 18) ;
long long n, ps[Dim][20];
int p, c[20], nr, r[210];
int main()
{
fin >> n >> p;
while ( n )
{
c[nr++] = n % 10;
n /= 10;
}
for ( int i = 1; i <= p * 10 + 9; ++i )
r[i] = i % p;
ps[0][0] = 1;
for ( int i = 0; i < ( 1 << nr); ++i )
{
for ( int j = 0; j < p; ++j )
if ( ps[i][j] )
for ( int k = 0; k < nr; ++k )
{
if ( (i & ( 1 << k )) == 0 )
ps[i | ( 1 << k )][r[j * 10 + c[k]]] += ps[i][j];
}
}
fout << ps[(1 << nr) - 1][0];
fin.close();
fout.close();
return 0;
}