Cod sursa(job #911883)

Utilizator paul_gabryelPaul Buda paul_gabryel Data 11 martie 2013 22:22:13
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb

#include <fstream>
#include <string>
#include <vector>

using namespace std;

string S;
int p;
long long BST[1<<18][21];

void READ ()
{

    ifstream in ("ratphu.in");

    in>>S>>p;

}

void SOLVE ()
{

    for( size_t i=0 ; i < S.size() ; ++i )
    {
        S[i]-='0';
        BST[1<<i][(S[i])%p]=1;
    }

    for( int i=0 ; i < (1<<S.size()) ; ++i )
        for( int j=0 ; j < S.size() ; ++j )
           if( !(i&(1<<j)) )
            for( int k=0 ; k < p ; ++k )
                BST[i|(1<<j)][(k*10+S[j])%p]+=BST[i][k];

}

void PRINT ()
{

    ofstream out ("ratphu.out");

    out<<BST[(1<<S.size())-1][0];

}

int main ()
{

    READ ();
    SOLVE ();
    PRINT ();

    return 0;
}