Cod sursa(job #2220007)

Utilizator 12222Fendt 1000 Vario 12222 Data 10 iulie 2018 12:48:54
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

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

const int nmax=(1<<19);

int n,p,a[22];
long long dp[nmax][22];
char s[22];

int main()
{
    fin>>s;
    fin>>p;

    for(int i=0;s[i];i++)
        a[n++]=s[i]-'0';

    const int Nmax=(1<<n);
    dp[0][0]=1;
    for(int stare=0;stare<Nmax;stare++)
        for(int bit=0;bit<n;bit++)
            if(!(stare & (1<<bit)))
                for(int rest=0;rest<p;rest++)
                    dp[stare | (1<<bit)][(rest*10+a[bit])%p]+=dp[stare][rest];

    fout<<dp[Nmax-1][0]<<"\n";
    fin.close();
    fout.close();
    return 0;
}