Cod sursa(job #1330691)

Utilizator ThomasFMI Suditu Thomas Thomas Data 30 ianuarie 2015 21:34:24
Problema Ratphu Scor 50
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.54 kb
#include <fstream>
#include <cstring>
using namespace std;

ifstream f("ratphu.in");
ofstream g("ratphu.out");

int D[1<<20][21];
char sir[20];
int n,p;

int main()
{
    int i,j,k;

    f>>sir>>p;
    n = strlen(sir);
    for(i=0;i<n;++i) sir[i] -= '0';

    D[0][0] = 1;

    for(i=0; i < (1<<n); ++i) for(j=0;j<p;++j) if(D[i][j])
    {
        for(k=0;k<n;++k) if( ( (1<<k) & i ) == 0) D[((1<<k)|i)][ (10*j + sir[n-k-1]) % p ] += D[i][j];
    }

    g<<D[(1<<n)-1][0]<<"\n";

    f.close();
    g.close();
    return 0;
}