Cod sursa(job #2029445)

Utilizator Andrei2000Andrei Mihailescu Andrei2000 Data 30 septembrie 2017 10:05:03
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <bits/stdc++.h>
#define nmax 18
using namespace std;

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

int p,nr=0,v[nmax+1];
long long d[1<<nmax][20],n;

int main()
{
    fin>>n>>p;
    while(n){
        v[nr++]=n%10;
        n/=10;
    }
    d[0][0]=1;
    for(int i=0;i< (1<<nr)-1;++i)
        for(int j=0;j<nr;++j){
            if(i & (1<<j))continue;
                for(int k=0;k<p;++k)
                    d[i | 1<<j][(10*k+v[j])%p]+=d[i][k];
        }
    fout<<d[(1<<nr)-1][0]<<endl;
    return 0;
}