Cod sursa(job #465848)

Utilizator TerminatorHasta La Vista Terminator Data 25 iunie 2010 13:33:56
Problema Ratphu Scor 40
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 1 Marime 0.59 kb
#include <cstdio>
#include <cstring>
#include <bitset>
#define MAXN 40
using namespace std;

int C[MAXN],p, x,  n;
long long  A;
long long ans, sol;
bitset <MAXN> uz;
void back (int k)
{
	if (k == n + 1 && ans % p == 0) ++sol;
	else
	{
		for (int i = 1; i <= n; i++)
		if (!uz[i]) 
		{
			ans = ans * 10 + C[i];
			uz[i] = 1;
			back (k + 1);
			uz [i] = 0;
			ans /= 10;
		}
	}
}
int main ()
{
	freopen ("ratphu.in", "r", stdin);
	freopen ("ratphu.out", "w", stdout);
	scanf ("%lld%d\n", &A, &p);
	while (A)
       	{
		C[++n] = A % 10;
		A /= 10;
	}
	back (1);
	printf ("%lld\n", sol);
	return 0;
}