Cod sursa(job #2749077)

Utilizator nubnubMeh Neh nubnub Data 4 mai 2021 21:32:55
Problema Ratphu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb

#include <iostream>
#include<fstream>
#include<algorithm>
#define MAX 1<<18
using namespace std;
int p,cifre[25],nrcifre;
long long c[MAX][21],n;
void citire()
{
    ifstream fin("ratphu.in");
    fin>>n>>p;
    fin.close();
    long long nr=n;
    while(nr > 0)
    {
        cifre[nrcifre++]=nr%10;
        nr/=10;
    }
}
void solve()
{
    c[0][0]=1;
    for(int i=0; i<(1<<nrcifre);++i)
    {
        for(int cif=0;cif < nrcifre;++cif)
        {
            if((i & (1<<cif))==0)
            {
                for(int r=0; r < p; ++r)
                {
                    c[i | (1<<cif)][(r*10 + cifre[cif])%p]+=c[i][r];
                }
            }
        }
    }
}
int main()
{
    citire();
    solve();
    ofstream fout("ratphu.out");
    fout<<c[(1<<nrcifre) -1][0]<<"\n";
    fout.close();
    return 0;
}