Cod sursa(job #1444339)

Utilizator obidanDan Ganea obidan Data 29 mai 2015 16:29:51
Problema Ratphu Scor 0
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.68 kb
#include <fstream>

using namespace std;

const int maxstari = (1<<18)+5;
const int dimstari = 20;

long long bst[maxstari][dimstari];
long long n;
int v[30];
int p,nr;

int main ()
{
    ifstream in("ratphu.in");
    ofstream out("ratphu.out");

    in>>n>>p;
    int i,j,k;

    for ( ; n; n/=10)
        v[nr++]=n%10;
    bst[0][0]=1;
     for(int i=0;i<(1<<nr);++i)
    {
        for(int j=0;j<nr;++j)
        {
            if((i & (1<<nr))==0)
            {
                for(int k=0;k<p;++k)
                {
                    bst[i|(1<<j)][(k*10+v[j])%p]+=bst[i][k];
                }
            }
        }
    }
    out<<bst[(1<<nr)-1][0];

}