Cod sursa(job #1258520)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 8 noiembrie 2014 23:46:58
Problema Ratphu Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#define DIM 20
#define infile "ratphu.in"
#define outfile "ratphu.out"

using namespace std;

ifstream f(infile);
ofstream g(outfile);

long long D[1 << DIM][DIM];

int Digits[DIM];

char s[DIM];

int p;

int main() {
	f >> s >> p;
	int nr_digits = 0;
	for (int i = 0; s[i]; ++i, ++nr_digits)
		Digits[i] = s[i] - '0';
	D[0][0] = 1;
	for (int config = 0; config < (1 << nr_digits); ++config) {
		for (int i = 0; i < p; ++i) {
			for (int j = 0; j < nr_digits; ++j) {
				if (!((1 << j) & config)) {
					int crt = (i*10 + Digits[j]) % p;
					D[config | (1 << j)][crt] += D[config][i];
				}
			}
		}
	}
	g << D[(1 << nr_digits) - 1][0];
	return 0;
}

//Trust me, I'm the Doctor!