Cod sursa(job #1336476)

Utilizator pop_bogdanBogdan Pop pop_bogdan Data 7 februarie 2015 19:35:46
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

ifstream is("ratphu.in");
ofstream os("ratphu.out");

string S;
int P;
long long D[1<<20][21];

int main()
{
    is >> S >> P;

    for ( int i = 0; i < S.size(); ++i )
        D[(1<<i)][(S[i]-'0')%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 )
                {
                    D[i | (1<<j)][(k * 10 + ((S[j])-'0'))%P] += D[i][k];
                }
            }
        }

    os << D[(1<<S.size())-1][0];

    is.close();
    os.close();
}