Cod sursa(job #2029444)

Utilizator Andrei2000Andrei Mihailescu Andrei2000 Data 30 septembrie 2017 10:02:40
Problema Ratphu Scor 30
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 n,p,nr=0,v[nmax+1];
long long d[1<<nmax][20];

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;
}