Cod sursa(job #997052)

Utilizator primulDarie Sergiu primul Data 13 septembrie 2013 10:20:26
Problema Ratphu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream>
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
int p,i,j,k,v[20];
long long n,d[1<<19][21];
int main()
{
    f>>n>>p;
    while(n)
    {
        v[++v[0]]=n%10;
        n/=10;
    }
    n=v[0];
    for(i=1;i<=n/2;++i)
    swap(v[i],v[n-i+1]);
    for(i=1;i<=n;++i)
    d[1<<(i-1)][v[i]%p]=1;
    for(i=0;i<(1<<n);++i)
    {
        for(j=0;j<n;++j)
        if(!(i&(1<<j)))
        {
            for(k=0;k<p;++k)
            d[i^(1<<j)][(k*10+v[j+1])%p]+=d[i][k];
        }
    }
    g<<d[(1<<n)-1][0]<<'\n';
    return 0;
}