Cod sursa(job #1264018)

Utilizator Kira96Denis Mita Kira96 Data 15 noiembrie 2014 14:26:27
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
#define FOR(a,b,c) for(register int a=b;a<=c;++a)
#define N 1<<20
#define P 20
#define SQ 350
using namespace std;
ifstream f("ratphu.in");
ofstream g("ratphu.out");
/*int dx[]={0,0,0,1,-1};
int dy[]={0,1,-1,0,0};*/
int cif[P],p,lim,t;
long long n,D[P][N];
int main ()
{
	f>>n>>p;
	t=-1;
	while(n)
    {
        cif[++t]=n%10;
        n/=10;
    }
    D[0][0]=1;
    lim=1<<(t+1);
    --lim;

    FOR(i,0,lim)
    FOR(r,0,p-1)
    if(D[r][i])
    FOR(j,0,t)
        if(!(i&(1<<j)))
            D[(r*10+cif[j])%p][i|(1<<j)]+=D[r][i];
    g<<D[0][lim];
	return 0;
}
//Look at me! Look at me! The monster inside me has grown this big!