Pagini recente » Cod sursa (job #298614) | Cod sursa (job #660056) | Cod sursa (job #2362387) | Cod sursa (job #21856) | Cod sursa (job #2439063)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
long long dp[ 1 << 19 ][21];
int main()
{
long long n;
int p;
int cifre[19];
f >> n >> p;
int i ;
for ( i = 0; i < 19 && n; i++ )
{
cifre[i] = n % 10 ;
n /= 10;
}
int nrcifre = i;
dp[0][0] = 1;
for ( int i = 0 ; i < (1 << nrcifre ); i++ )
for ( int j = 0; j < 20; j++)
if (dp[i][j] != 0 )
for ( int bit = 0; bit < nrcifre ; bit++)
if ( (i & ( 1 << bit )) == 0)
dp[i ^ (1 << bit) ][(j*10 + cifre[bit]) % p] += dp[i][j];
g << dp[(1 << (nrcifre )) -1 ][0];
}