Pagini recente » Cod sursa (job #3286450) | Cod sursa (job #2202257) | Cod sursa (job #3258650) | Cod sursa (job #3293412) | Cod sursa (job #2859936)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ratphu.in");
ofstream fout("ratphu.out");
char s[25];
long long dp[270000][25], p, a[25], n, rest[25][25];
int main()
{
fin >> (s + 1);
for(int i = 1; s[i]; i++)
a[n++] = s[i] - '0';
fin >> p;
long long P = (1 << n);
for(int i = 0; i < n; i++)
dp[1 << i][a[i] % p] = 1;
for(int i = 0; i < 20; i++)
for(int j = 0; j < 20; j++)
rest[i][j] = ((i * 10) + a[j]) % p;
for(int stare = 1; stare < P; stare++)
for(int i = 0; i < n; i++)
if((stare & (1 << i)) == 0)
for(int r = 0; r < p; r++)
dp[stare | (1 << i)][rest[r][i]] += dp[stare][r];
fout << dp[P - 1][0] << "\n";
fout.close();
return 0;
}