Cod sursa(job #790140)

Utilizator repp4raduRadu-Andrei Szasz repp4radu Data 20 septembrie 2012 15:23:17
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <cstring>

using namespace std;

char n[20];
int p, lgt, aux;
long long dp[(1 << 18)][20];

int main()
{
    ifstream in("ratphu.in"); in>>n>>p; in.close();
    lgt = strlen(n);
    for(int i = 0; i < lgt; i++)
    {
        n[i] -= '0';
        dp[(1 << i)][n[i] % p]++;
    }
    for(int conf = 1; conf < (1 << lgt); conf++)
    {
        if(!(conf & (conf - 1))) continue;
        for(int i = 0; i < lgt; i++)
            if(conf & (1 << i))
            {
                aux = conf ^ (1 << i);
                for(int r = 0; r < p; r++)
                    dp[conf][(r * 10 + n[i]) % p] += dp[aux][r];
            }
    }
    ofstream out("ratphu.out"); out<<dp[(1 << lgt) - 1][0]; out.close();
    return 0;
}