Cod sursa(job #1264025)

Utilizator Kira96Denis Mita Kira96 Data 15 noiembrie 2014 14:31:37
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 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,i,j,r;
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;i<=lim;++i)
    for(j=0;j<=t;++j)
    if(!(i&(1<<j)))
    for(r=0;r<p;++r)
    if(D[r][i])
    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!