Cod sursa(job #745273)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 10 mai 2012 21:19:03
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<iostream>
#include<fstream>

using namespace std;

long long d[1 << 20][20], n;
int cifre[30], p, nr;

ifstream in("ratphu.in");
ofstream out("ratphu.out");

void dinamica()
{
	int i, j, k;
	
	do{
		cifre[ nr++ ] = n % 10;
		n /= 10;
	}while(n);
	
	d[0][0] = 1;
	
	for(i = 0; i < (1 << nr); ++i)
		for(j = 0; j < p; ++j)
			if(d[i][j])
				for(k = 0; k < nr; ++k)
					if(!((1 << k) & i))
						d[i + (1 << k)][(j * 10 + cifre[k]) % p] += d[i][j];
}

int main()
{
	in >> n >> p;
	
	dinamica();
	
	out << d[(1 << nr) - 1][0];
	
	return 0;
}