Cod sursa(job #1426756)

Utilizator sulzandreiandrei sulzandrei Data 30 aprilie 2015 16:25:22
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#define maxn 1<<18
#include <string>
using namespace std;
ifstream in("ratphu.in");
ofstream out("ratphu.out");
string s;
#define lli long long int
lli d[maxn][25],p;
int main ()
{
    in >> s >> p;
    int lg = 1 << s.size();
    int dim = s.size();
    for (int i = 0; i < dim; i++)
    {
        s[i] = (s[i] - '0') % p;
        d[1 << i][s[i]] = 1;
    }
    for (int i = 0; i < lg; i++)
        for (int j = 0; j < dim; j++)
            if ( (i & (1 << j) ) == 0)
                for(int k = 0; k < p; k++)
                    d[i | (1 << j)][(k * 10 + s[j]) % p] += d[i][k];

    out << d[lg - 1][0];
    return 0;
}