Cod sursa(job #1444651)

Utilizator diana-t95FMI Tudoreanu Diana Elena diana-t95 Data 30 mai 2015 00:58:41
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.77 kb

#include <fstream>
using namespace std;

long long n, p;
long long dp[1<<18][21];
int cf[19];
int main()
{
    ifstream fin("ratphu.in");
    ofstream fout("ratphu.out");
    fin>>n>>p;
    int nc = 0;
    while (n)
    {
        cf[nc] = n%10;
        n/=10;
        nc++;
    }
    long long maxc = 1<<nc;
    dp[0][0] = 1;
    int cifra, i;
    for (int config = 0; config < maxc; ++config)
    {
        for (cifra = 0; cifra < nc; ++cifra)
        {
            if ((config & (1<<cifra)) == 0)
            {
                for (int i = 0; i < p; ++i) //fiecare rest
                {
                    dp[config |(1<<cifra)][(i*10 + cf[cifra])%p] += dp[config][i];
                }
            }
        }
    }
    fout<<dp[maxc-1][0];
}