Cod sursa(job #2439789)

Utilizator Briana_NeaguNeagu Briana Briana_Neagu Data 16 iulie 2019 21:30:13
Problema Ratphu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;

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

long long dp[1<<18][20];
vector < int > cifre;

int main()
{
    long long n;
    int p;
    f >> n >> p;

    while(n)
    {
        cifre.push_back(n % 10);
        n /= 10;
    }

    dp[0][0] = 1;
    for (int i = 0; i < (1 << cifre.size()); ++ i)
        for (int j = 0; j < p; ++ j)
            if (dp[i][j])
                for (int bit = 0; bit < cifre.size(); ++ bit)
                    if ((i & (1 << bit)) == 0)
                        dp[i ^ (1 << bit)][(j * 10 + cifre[bit]) % p] += dp[i][j];

    g << dp[(1 << cifre.size()) - 1][0];

}