Cod sursa(job #1448116)

Utilizator radu_cosmaRadu Cosma radu_cosma Data 6 iunie 2015 12:06:26
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("ratphu.in");
ofstream out("ratphu.out");
long long dp[1<<18][20],n,n1;
int cif[20];
int main()
{   int i=0,q,p,a,k,j;
    in>>n>>p;
    n1=n;
    while(n1)
    {
        cif[i]=n1%10;
        n1/=10;
        i++;
    }
    q=i;
    for(k=0;k<q;++k)
        dp[1<<k][cif[k]%p]=1;
    for(i=1;i<=(1<<q)-1;++i)
    for(j=0;j<q;++j)
    {
        if((i&(1<<j))==0) {
                for(k=0;k<p;++k)
                {
                    dp[i|(1<<j)][(k*10+cif[j])%p]+=dp[i][k];
                }
        }
    }
        out<<dp[(1<<q)-1][0];
        return 0;




}