Cod sursa(job #1804133)

Utilizator Athena99Anghel Anca Athena99 Data 12 noiembrie 2016 11:35:54
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream fin("ratphu.in");
ofstream fout("ratphu.out");

typedef long long i64;

const int cmax= 18;
const int pmax= 20;

int v[cmax];

i64 d[1<<cmax][pmax];

int main(  ) {
     i64 n;
     int p, k;
     fin>>n>>p;
     for ( k= -1; n>0; n/= 10 ) {
          v[++k]= n%10;
     }

     d[0][0]= 1;
     for ( int i= 0; i<(1<<(k+1)); ++i ) {
          for ( int j= 0; j<=k; ++j ) {
               if ( (i&(1<<j))==0 ) {
                    for ( int l= 0; l<p; ++l ) {
                         d[i+(1<<j)][(l*10+v[j])%p]+= d[i][l];
                    }
               }
          }
     }

     fout<<d[(1<<(k+1))-1][0]<<"\n";

     return 0;
}