Cod sursa(job #1434211)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 10 mai 2015 14:05:24
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <cmath>
using namespace std;

long long d[(1 << 18) + 1][20];
int main()
{
    long long N;
    int P, i;
    ifstream f("ratphu.in");
    f >> N >> P;
    f.close();

    int digitsOfN = log10(N) + 1;
    int digits[digitsOfN], k = 0;
    while(N)
    {
        digits[k] = N % 10;
        N /= 10;
        k++;
    }

    int j, upperBound = 1 << digitsOfN;
    d[0][0] = 1;
    for (i = 0; i < upperBound; i++)
        for (j = 0; j < digitsOfN; j++)
            if ((i & (1 << j)) == 0)
                for (k = 0; k < P; k++)
                    d[i | (1 << j)][(k * 10 + digits[j]) % P] += d[i][k];

    ofstream g("ratphu.out");
    g << d[upperBound - 1][0];
    g.close();

    return 0;
}