Cod sursa(job #996749)

Utilizator misinozzz zzz misino Data 12 septembrie 2013 16:06:56
Problema Ratphu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
int n,p,i,j,k,v[20],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;
}