Cod sursa(job #2182024)

Utilizator TudoseSanzianaTudose Sanziana TudoseSanziana Data 22 martie 2018 00:14:41
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in("ratphu.in");
ofstream out("ratphu.out");

const int MSK_MAX = 524287, P_MAX = 20;

string n;
int p;

long long dp[MSK_MAX + 2][P_MAX + 2];

int main()
{
    in >> n >> p;

    dp[0][0] = 1;
    for(int msk = 0; msk < (1 << n.length()); msk++)
    for(int rest = 0; rest < p; rest++)
    {
        for(int bit = 0; bit < n.length(); bit++)
            if(!(msk & (1 << bit)))
            {
                int nr = n[bit] - '0';
                dp[msk | (1 << bit)][(rest * 10 + nr) % p] += dp[msk][rest];
            }
    }

    out << dp[(1 << n.length()) - 1][0] << '\n';

    return 0;
}