Cod sursa(job #911864)

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

#include <fstream>
#include <string>

using namespace std;

string S;
int p;
int BST[262145][21];

void READ ()
{

    ifstream in ("ratphu.in");

    in>>S>>p;

}

void SOLVE ()
{

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

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

}

void PRINT ()
{

    ofstream out ("ratphu.out");

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

}

int main ()
{

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

    return 0;
}