Cod sursa(job #1706616)

Utilizator LucianTLucian Trepteanu LucianT Data 22 mai 2016 21:41:50
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define maxN 20
using namespace std;
long long dp[maxN][1<<19];
int v[maxN],n,p,i,j,mask,maxC,nrc,k,aux;
char s[maxN];
int main()
{
    ifstream f("ratphu.in");
    ofstream g("ratphu.out");
    f>>s>>p;
    n=strlen(s);
    for(i=0;i<n;i++)
        v[i]=s[i]-'0';
    dp[0][0]=1;
    for(mask=1;mask<(1<<n);mask++)
        for(k=0;k<n;k++)
            if(mask&(1<<k))
                for(j=0;j<p;j++)
                {
                    aux=10*j+v[k];
                    while(aux>=p)
                        aux-=p;
                    dp[aux][mask]+=dp[j][mask-(1<<k)];
                }
    g<<dp[0][(1<<n)-1];
    return 0;
}